AdaCore: Build Software that Matters
245329 adacore code snippets 1 2
Languages > Ada_

The Ada Programming Language

The Ada programming language, together with SPARK, is one of the most reliable programming languages available for the development of high integrity applications. AdaCore provides a comprehensive suite of software development tools that encompass code compilation, development and verification.

Features_

Key Advantages of Ada

Rich and Verifiable Specification

Ada allows developers to precisely specify program requirements and constraints directly in the code through features like strong typing and contract based programming.

Memory Safety

Ada offers strong support for memory safety, including automatic run-time protection against dereferencing invalid pointers or accessing outside the bounds of arrays.

High Efficiency

Ada is compiled and designed to support embedded needs. The resulting code is efficient and offers a small footprint, without reliance on a run-time interpreter or garbage collector.

Self-Checking and Automatic Defensive Code

Ada can insert run-time checks for programming errors and specification verification if required, for example to harden critical code or to enrich testing campaigns.

Built-in Concurrency Support

Ada has native support for concurrent programming through tasks and protected objects, making it easier to write correct multithreaded applications.

Strict Undefined Behaviors

The Ada language follows a strict specification that doesn't leave space to undefined behavior. Compiler implementation permissions and bounded errors are clearly documented and limited as much as possible.

Binary code
Related Products_

Our Ada Technology

Expert Support & Training_

Our Ada Services

Where Ada is Used Today_

Trusted in High-Integrity Industries

Ada to plays a pivotal role in safety- and security-critical systems across aerospace and defense and avionics, largely because its design enforces strong typing, modularity, concurrency control, and run-time checks that help in meeting high integrity requirements and certification standards like DO-178 and others. More recently, Ada (and its formally verifiable dialect SPARK) has broken into new domains, such as medical devices, automotive or industrial automation. As the demand for high integrity increases, Ada continues to find new places of relevance.

Binary code
Get in Touch_

Expert Guidance

Ready to use Ada for your next high-integrity project? Our team can help you choose the right tools and support to ensure success.

Adacore itec case study v4 1
Case Study_

Ada at ITEC: Real-Time Control over Complex Semiconductor Manufacturing Processes

ITEC, one of the major semiconductor manufacturing equipment and automation providers, chose Ada as its programming language to develop its critical control software.

Download
Code
"We needed a long-term partner and a scalable software development environment. Selecting AdaCore has been key to our success; choosing Ada was the right decision at the right time."
IPESOFT Miroslav Kunsch, Chairman
"In our experience, programmers can learn Ada and get up to speed within just two weeks. They learn quickly that Ada is a language that they can trust, building confidence, saving time, and allowing them to focus on other parts of their role."
ITEC Felix Patschkowski, Software Engineer
"AdaCore appears very focused on solving customer’s problems first. We know we can count on AdaCore to answer our questions with very low latency."
NVIDIA Dhawal Kumar, Principal Software Engineer
"We can take code we've developed, and it still works in these other environments. Wherever our future lies, Ada is right there, ready to go."
SEAKR Engineering Mike Jelks, Staff Engineer
FAQs_

Find answers to common questions about Ada

Ada has a strong footing in safety-critical industries such as aerospace, defence, and railway, and adoption is increasing in the automotive and medical devices domains. It is also well established in mission-critical areas like banking and industrial automation.

With GNAT Pro, Ada is compiled to machine code running directly on the machine, either with an OS or bare metal. In addition, the language provides very precise control over the hardware representation of data, making it a very good choice for device drivers.

Ada is highly suitable for large-scale applications due to its strong type system, robust concurrency support, modular structure, and emphasis on maintainability. These features collectively address critical challenges inherent in large-scale software development.

AdaCore provides support for Ada on a wide range of hardware architectures (x86-64, Arm, RISC-V, PowerPC) as well as native and embedded RTOS environments (Windows, Linux, VxWorks, FreeRTOS, etc.). We can also develop customer-specific ports on generally available architectures and OSes.

Explore More_

Latest News and Resources