Language Support

AdaCore’s offerings are geared towards developers of embedded and native applications that demand high levels of assurance. Such software is written in a variety of programming languages, which AdaCore supports through compilers, multi-language build tools, IDEs, debuggers, and static and dynamic analysis tools.


The Ada language has a long and successful history in high-assurance systems on both native and embedded platforms, combining reliability, maintainability and performance. AdaCore has been at the forefront of advanced Ada technology since the company’s inception, and our products support all versions of the language standard: Ada 83, Ada 95, Ada 2005, and Ada 2012.


GNAT Pro | CodePeer


Learn Ada | Community


SPARK is an Ada 2012 subset that supports formal proofs of program properties ranging from absence of run-time errors to functional correctness (compliance of the code with formally specified requirements). As such the language is appropriate for applications at the highest levels of safety and/or security. SPARK can be integrated with code in other languages, such as Ada, C, or C++, using hybrid verification that combines formal methods with traditional testing-based approaches.




SPARK 2014

C and C++

C remains the most common high-order language for embedded systems development, and in large applications C++ can bring the benefits of more powerful and expressive features while retaining C’s performance advantages. AdaCore’s gcc-based multi-language technology implements both C and C++, allowing programmers to develop software in either or both of these languages and, if applicable, integrate their code with Ada. AdaCore toolsets support C89 through C11 and C++89 through C++14.


GNAT Pro C and C++ Toolchains


Rust is a programming language designed for performance and safety, created to help developers build dependable, efficient software. It is Type-safe and Memory-Safe and supports concurrent and parallel programming. AdaCore’s GNAT Pro for Rust is an industrial-grade toolchain delivered with guaranteed software-supply-chain integrity.


GNAT Pro for Rust 

Other Languages

Ada, SPARK, C and C++ are supported by the core tools, but applications are not restricted to just these languages. Several tools provide either direct interfacing to other specific languages, for example Java and Python, or indirect interfacing through a compatibility layer in C.