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.

Libraries

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

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 (--gc-sections), memory leak analysis (GNATmem), pretty printing (GNATpp), documentation generation (GNATdoc) and source pre-processing (GNATprep).

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.

Visual Studio Integration

The GNAT Pro toolsuite now comes with a Visual Studio plugin, taking advantage of our Ada Language Server, which implements the Language Server Protocol (LSP) to provide support for Ada editing in any IDE.

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 support for Ada within Eclipse and in particular integrates with Wind River WorkBench.