The GNAT Pro Toolsuite

GNAT Pro is a robust and flexible Ada, C and C++ development environment. It comprises a toolchain based on the GNU GCC technology, an Integrated Development Environment (GNAT Studio), a comprehensive toolsuite including a visual debugger, and a set of libraries, bindings and tools.

Industrial-Grade Toolchain

At the heart of GNAT Pro is a set of program build tools that can scale up to the largest projects and seamlessly handle multi-language applications.

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.

Multi-Language Management

GPRbuild 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.

Visual Debugger

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.

Run-Time Profiles

Restricted run-time profiles are available for cross configurations. The Zero Footprint Profile defines an Ada subset implemented without run-time library code. It allows major language features while minimizing memory footprint and certification requirements. 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. It is also possible to configure the run-time support libraries to match specific user needs.


Libadalang is a powerful and modern technology supporting full syntactic analysis of Ada (or SPARK) source code and a comprehensive set of semantic queries, and it can work on code that is incomplete or otherwise invalid.

The Libadalang library is the foundation for many of AdaCore’s own tools and is included with all native-platform GNAT Pro Ada subscriptions. Using Libadalang, customers can develop a wide range of Ada source code analysis tools in either Ada or Python.

Gps Main Window

GNAT Studio

Integrated Development Environment

GNAT Studio serves as a portal to the GNAT Pro toolchain, integrating most of the command-line tools and utilities. It supports Ada, C and C++ and provides syntax-directed editing, source navigation, dependency graphs, code assistance, easy integration with third party tools such as Version Control Systems, and more.

Read more about GNAT Studio »

Specialized Tools

Formal Verification with SPARK

Realize the benefits of formal methods through the SPARK Ada subset and SPARK Discovery — a basic version of the SPARK Pro product provided with all distributions of GNAT Pro Ada and CodePeer.

Target Emulation

Compile code directly for the target architecture and then use GNATemulator to run it on the host platform through an approach that translates from the target object code to native instructions on the host. This generic and open-source machine emulator and virtualizer is based on the QEMU technology.

Web Integration

The Ada Web Server (AWS) can be embedded in an Ada application, allowing it to talk with web browsers. It provides support for a variety of web standards and protocols, including HTTP, SSL, SOAP, SMTP, POP, and LDAP.

Code Quality Monitoring and Visualization

Integrate and aggregate the results of AdaCore’s various static and dynamic analysis tools (GNATmetric, GNATcheck, GNATcoverage, CodePeer, SPARK Pro, among others) within a common interface in GNATdashboard. This tool helps quality assurance managers and project leaders understand or reduce their software’s technical debt, and eliminates the need for manual input. It can be integrated with tools such as SQUORE and SonarQube.

Other Utilities

GNAT Pro comes with a variety of utilities covering unused subprogram elimination (GNATelim), metric computation (GNATmetric), memory leak analysis (GNATmem), pretty printing (GNATpp), documentation generation (GNATdoc) and source pre-processing (GNATprep).

Coding Standard Verification

Allow developers to completely define a coding standard as a set of rules with GNATcheck — an extensible rule-based tool with an easy-to-use interface. For example, you can define a subset of permitted language features. GNATcheck verifies a program’s conformance with the resulting rules.

Tools Exclusive to GNAT Pro Enterprise and Assurance.

A number of components are available only with GNAT Pro Assurance and GNAT Pro Enterprise.

Ada-Java Interfacing

The GNAT Ada-Java Interfacing Suite (AJIS) is a collection of GNAT Pro add-on tools for combining native Ada code with Java applications that run on a Java Virtual Machine (JVM). These tools allow calling natively compiled Ada from Java, and calling Java from native Ada programs. They also include automatic Ada-to-Java binding generation, based on the the Java Native Interface (JNI).

Static Stack Checking

Accurately predict the maximum size of the memory stack required to host an embedded software application with GNATstack — a software analysis tool for Ada and C software development teams.

Eclipse Integration

GNATbench, the GNAT Pro Ada plug-in for Eclipse, brings the advantages of AdaCore's GNAT Pro toolset to the Eclipse development environment framework. GNATbench provides Ada functionalities and capabilities similar to the GNAT Programming Studio with the standard look and feel of Eclipse.