AdaCore logo

AdaCore

Free

Open source maintainer of Ada with a focus on embedded use.

FreeFree tier
Type
Open Source

About AdaCore

AdaCore is a GitHub organization that maintains and develops open source tools and libraries for the Ada and SPARK programming languages. Their repositories include GNAT Studio (an IDE for Ada and SPARK), SPARK 2014 (a software development technology for high-reliability applications), the Ada Language Server (implementing the Microsoft Language Protocol for Ada and SPARK), Ada Drivers Library (sample projects for bare-board platforms), GNAT LLVM (an LLVM-based Ada compiler), and Libadalang (an Ada semantic analysis library). These tools cater to embedded systems, safety-critical software, and formal verification.

Key Features

GNAT Studio – a powerful and lightweight IDE for Ada and SPARK
SPARK 2014 – formal verification technology for high-reliability applications
Ada Language Server – Microsoft Language Protocol implementation for Ada and SPARK
Ada Drivers Library – sample GNAT projects for bare-board embedded platforms
GNAT LLVM – Ada compiler based on the LLVM infrastructure
Libadalang – semantic analysis library for Ada
GNATcoverage – coverage analysis tool
Langkit – language creation framework

Pros & Cons

Pros
  • All tools and libraries are open source
  • Strong emphasis on reliability and formal verification (SPARK)
  • Comprehensive toolchain for Ada development, from IDE to verification
  • Active community with multiple maintained repositories
  • Supports embedded and bare-metal targets
Cons
  • Niche language ecosystem (Ada/SPARK) with limited mainstream adoption
  • Learning curve for developers unfamiliar with Ada or formal methods
  • Smaller community compared to languages like C/C++ or Python
  • Documentation and training materials may be less abundant than for more popular languages

Best For

Developing safety-critical software systemsFormal verification of high-reliability applicationsEmbedded systems programming on bare-board platformsAda and SPARK language tooling and IDE supportCode analysis and coverage measurementCompiler development and language experimentation