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.

Ada

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.

Products

GNAT Pro | CodePeer

Learn

Learn Ada | Community

SPARK

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.

Products

SPARK Pro

Learn

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.

Products

GNAT Pro C and C++ Toolchains

Rust

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.

Products

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.