Full Ada Compiler with Multi-Language Support
The GCC-based GNAT compiler supports the Ada, C and C++ languages, allowing you to build both pure and mixed-language applications. Available on a wide range of native and cross configurations, GNAT is a mature technology with over twenty years of industrial usage in the most demanding markets.
Supplementing the standard Ada API, GNAT Pro includes packages for services such as operating system interfaces, XML processing, text manipulation and pattern matching, data structures and algorithms, I/O operations, and database interfacing. These are provided by the GNAT run-time libraries as well as XMLAda, Florist (POSIX bindings) and GNATcoll.
Restricted run-time profiles are available for cross configurations with limited (such as bare metal micro-controller targets) or where certification is needed. The Zero Footprint Profile defines an Ada subset implemented without run-time library code. It allows major language features such as generics, child units, library-level tagged types, interfaces and local exception handling while keeping the application within minimal memory constraints and requiring no specific certification effort. Other restricted run-time profiles are also available, including the Cert run-time which implements additional math functions or the Ravenscar run-time which provides a small embedded real-time kernel that implements the Ravenscar tasking features. It is also possible to configure the run-time support libraries to match specific user needs.
GNAT Pro includes an extensible debugging harness based on GDB, offering powerful data display / visualization / tracking capabilities, an intuitive menu-driven interface, and a pluggable look-and-feel. It supports multiple debugger back-ends (both native and cross), handles multiple languages including Ada, C and C++, and allows debugging of multi-threaded and/or multi-processed applications. It is non-intrusive: compiling with debugging enabled has no effect on the generated object code. It can be driven from the command line, the graphical IDE or through Python scripting.
Multi-Language Management with GPRbuild
GPRbuild is an advanced software tool designed to help automate the construction of multi-language systems. It simplifies multi-language development by allowing developers to quickly and easily compile and link software written in a combination of languages including Ada, assembler, C and C++. Easily extendable by users to cover new toolchains and languages, it is primarily aimed at projects of all sizes organized into subsystems and libraries. It also support distributed compilation across several hosts.