1374 search results for

  • Homepage

    Homepage

  • Articles

    Code cleaning with SPARK and Ada: Cut development costs upfront

  • Articles

    Bringing the aerospace safety Mindset to the Automotive Mode

  • Articles

    Lauterbach et AdaCore s’associent pour GNATcoverage

  • Articles

    Ada Language: Trusted Tool for Safety Critical Systems (pages 24-26)

  • Articles

    Code Quality Warnings: Highlighting Likely Bugs Before They Bite

  • Articles

    AdaCore booth video at TU Automotive Detroit 2017

  • Articles

    Making robots with Ada

  • Articles

    Before C, What Did You Use?

  • Articles

    Ada Competition: Look who's a judge!

  • Articles

    Helpful Hints for Adopting SPARK

  • Articles

    Military & Commercial Unmanned Systems Designs Leverage Open Architectures

  • Articles

    The challenge of controlling proliferating unmanned aircraft

  • Articles

    Rust and SPARK: Reliability for Everyone

  • Articles

    Investing in test tools for modern and legacy aerospace systems

  • Articles

    Tools for embedded software development: a life cycle perspective (page 17)

  • Articles

    AdaCore vehemently verifies (software) verification

  • Articles

    Q&A: Formal Methods Push Toward Zero-Defect Software

  • Articles

    DO-178C: Software for NextGen Avionics, UAVs and More

  • Articles

    Formal program verification in avionics certification

  • Articles

    A source-annotation-based framework for structural coverage

  • Articles

    Ada für Embedded

  • Articles

    The time has come for Ada

  • Articles

    Learning from an Ada Neophyte

  • Articles

    DO-178C helps to make flying safer

  • Articles

    Reducing the Odds of Failure

  • Articles

    Ada Driver Library for ARM Cortex-M/R - Part 2

  • Articles

    Ada in the IoT?

  • Articles

    Ada Driver Library for ARM Cortex-M/R - Part 1

  • Articles

    The IoT & Embedded Technology Beat: with Quentin Ochem of AdaCore (Part 2)

  • Articles

    The IoT & Embedded Technology Beat: with Quentin Ochem of AdaCore (Part 1)

  • Articles

    158: Programming is too difficult for humans

  • Articles

    Traits-basierte Container in Ada

  • Articles

    AdaCore muscle ses outils de développement et de vérification pour la programmation à base de modèles

  • Articles

    11 Myths About Ada

  • Articles

    Candy Dispenser Riddles You This

  • Articles

    Hybrid Verification for High-Integrity Software: Combining Formal Methods with Testing

  • Articles

    Comparing Ada and C

  • Articles

    What's the Difference Between Ada and SPARK?

  • Articles

    What's the Difference Between Secure Comms and Secure Systems?

  • Articles

    Bringing Ada and GNAT to DIYers on Raspberry Pi

  • Articles

    Codegenerierung aus Simulink- und Stateflow-Modellen individuell anpassen

  • Articles

    Reducing Cost of Defensive Code – The Ada 2012 Approach

  • Articles

    The Day of the Three Glitches

  • Articles

    Ada/SPARK Fixes Crazyflie Nano Quadrotor

  • Articles

    Vehicle automation: Who should have ultimate control?

  • Articles

    Will MY Car be Hacker Proof?

  • Articles

    COTS software challenges in the military electronics market

  • Articles

    Drone safety, what's next?

  • Articles

    Unterschiede von freie Software, Open Source und FLOSS (German only)

  • Articles

    Requiem for a Bug – Verifying Software, Part 2: Formal Verification through SPARK 2014

  • Articles

    SPARK 2014 lowers the barriers to low-defect programming

  • Articles

    Advanced static analysis for reusable libraries and subsystems

  • Articles

    Verifying Software: Testing and Static Analysis

  • Articles

    Static Analysis Tools Pass the Quals

  • Articles

    Open Source Software Everywhere?

  • Articles

    Automotive Automation: Lessons from Other Domains

  • Articles

    ARMed and Ready

  • Articles

    Interview With Richard Kenner of AdaCore

  • Articles

    Safe and secure object-oriented programming with Ada 2012's contracts

  • Articles

    Ada Watch: Bringing Ada onto the battlefield

  • Articles

    Security is front and center for developers

  • Articles

    Running Ada 2012 On The Cortex-M4

  • Articles

    After Heartbleed: A Look at Languages that Support Provability

  • Articles

    Open Source in High-Integrity Systems

  • Articles

    Real Time Operating Systems Addressing the Certification, Security and Standards Dilemmas

  • Articles

    Security is one of the biggest problems for the IoT right now

  • Articles

    Alternatives to C/C++ for system programming in a distributed multicore world

  • Articles

    Software considerations for multicore hardware environments

  • Articles

    ARMing Ada

  • Articles

    Safety certification concerns for UAVs in national airspace

  • Articles

    AdaCore releases GNAT Pro 7.2 with more ARM support

  • Articles

    Use Contracts To Enforce Effective Coding

  • Articles

    AdaCore Flies GNAT Pro 7.2

  • Articles

    Parallelism joins concurrency for multicore embedded computing

  • Articles

    Will My Car be Safe to Drive?

  • Articles

    Software Glitches: Why We Shouldn't Put Up With Them

  • Articles

    What will be hot in 2014 for Embedded and Mobile Software Development?

  • Articles

    Contract-based programming: making software more reliable

  • Articles

    SPARK 2014: Why I am backing a predictable winner

  • Articles

    Vector Software Announces Support for the AdaCore GNAT Pro Compiler for ARM Cortex

  • Articles

    How Safe Are Our Roads?

  • Articles

    Nebenläufige Programmierung in Ada

  • Articles

    Real-Time Operating Systems

  • Articles

    Testing or Formal Verification: DO-178C Alternatives and Industrial Experience

  • Articles

    Is it safe?

  • Articles

    Advanced static analysis meets contract-based programming

  • Documentation

    GNATcheck Reference Manual

    The gnatcheck tool can be used to enforce coding conventions and find interesting or suspicious code patterns by analyzing Ada source programs with respect to a set of rules supplied at tool invocation. This manual describes the complete set of predefined rules that gnatcheck can take as input as well as how to write custom rules via the LKQL language.
  • Documentation

    GNATstack User's Guide

    This guide contains a general description of gnatstack, a framework for computing and analyzing stack usage for the different subprograms in the application and extracting worst case values prior to execution time.
  • Documentation

    GNAT Reference Manual

    This manual contains useful information in writing programs using the GNAT compiler. It includes information on implementation dependent characteristics of GNAT, including all the information required by Annex M of the standard.
  • Documentation

    PolyORB User's Guide

    This is the main documentation for PolyORB.
  • Documentation

    GtkAda User's Guide

    This is a developer's guide to GtkAda.
  • Documentation

    GtkAda Reference Manual

    This document provides reference information for all GtkAda entities.
  • Documentation

    GNATemulator User's Guide

    This page gives access to the main GNATemulator documentation. GNATemulator is an efficient and flexible tool that provides integrated, lightweight target emulation.
  • Documentation

    GNATdashboard

    This is the manual for administering and using GNATdashboard.
  • Documentation

    GNATbench For WRS Workbench User's Guide

    This User's Guide describes how to use the GNATbench Ada plug-in for Windriver Workbench. Specific help is provided for configuring projects, building systems, and debugging.
  • Documentation

    GNATbench For Eclipse User's Guide

    This User's Guide describes how to use the GNATbench Ada plug-in for Eclipse. Specific help is provided for configuring projects, building systems, and debugging.
  • Documentation

    The Ada XML Library

    This is the main documentation for XML/Ada.
  • Documentation

    GNATcoll: GNAT Component Collection

    This is the main documentation for GNATcoll, a library providing a number of modules that can be reused in your own applications to add extra features or help implementation.
  • Documentation

    Ada Web Server User's Guide

    This is the main documentation for AWS, the Ada Web Server library.
  • Documentation

    Templates Parser User's Guide

    This is the main documentation for the AWS Templates Parser.
  • Documentation

    AUnit Cookbook

    This is a short guide for using the AUnit test framework. AUnit is an adaptation of the Java JUnit (Kent Beck, Erich Gamma) and C++ CppUnit (M. Feathers, J. Lacoste, E. Sommerlade, B. Lepilleur, B. Bakker, S. Robbins) unit test frameworks for Ada code.
  • Documentation

    GNU Binary Utilities

    This is the documentation for GNU Binary Utilities.
  • Documentation

    The GNU linker

    This is the documentation for GNU ld, the GNU linker, part of GNU Binutils.
  • Documentation

    Using as

    This is the user manual for GAS, the GNU Assembler, part of GNU Binutils.
  • Documentation

    Debugging With GDB

    This is the main documentation for GDB, the GNU source-level debugger.
  • Pages

    Products Overview

    AdaCore provides complete software development environments plus Static Analysis & Testing, Model-Based Engineering, and Formal Verification tools
  • Pages

    GNAT Pro

    The GNAT Pro product line offers a comprehensive toolset (IDEs, debugger, librairies, dynamic and static analysis tools) for Ada, C and C++.
  • Pages

    SPARK Pro

    SPARK Pro is a language — a formally analyzable subset of Ada 2012 — and toolset that brings mathematics-based confidence to software verification.
  • Pages

    Defects and Vulnerability Analysis

    The CodePeer Static Analysis tool may be used with any standard Ada compiler, scans for numerous CWE software errors, and supports all versions of Ada.
  • Pages

    GNAT Pro Assurance

    GNAT Pro Assurance offers developers the chance to freeze on a stable version of the GNAT technology - essential for long-lived projects or certification.
  • Pages

    GNAT Pro Enterprise

    GNAT Pro Enterprise is a complete development environment for producing critical Ada, C, and C++ software systems where reliability is essential.
  • Pages

    Toolsuite

    GNAT Pro comprises a comprehensive toolsuite for Ada, C, and C++ including IDEs, a visual debugger, and a set of libraries, bindings and tools.
  • Pages

    GNAT Studio

    GNAT Studio is a powerful IDE that supports the full development workflow, from coding to integration, testing, debugging, and code analysis.
  • Pages

    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.
  • Pages

    SPARK Discovery

    SPARK Discovery is a preview of the full capabilities of SPARK Pro, making the SPARK formal verification language and toolset available to all GNAT users.
  • Pages

    SPARK Pro Demos

    A SPARK Pro demo showing highlights and updates to the SPARK language and our SPARK Pro product range and toolsuite, all invokable through the GPS IDE.
  • Pages

    Use Cases

    SPARK Pro is a modular toolset that can be applied across a range of industrial scenarios especially those with security and safety requirements.
  • Pages

    CodePeer Demos

    Demos highlighting CodePeer's capability to check for software fragilities, scan for CWE errors, and using the tool in DO-178B and EN 50128 certification.
  • Pages

    GNATemulator

    Based on the QEMU technology, the GNATemulator tool lets you compile code directly for your target architecture and run it on your host platform.
  • Pages

    GNATtest

    GNATtest (based on AUnit) helps automate processes for developing and managing the large number of test cases needed for verifying large software systems.
  • Pages

    Ada Web Server

    AWS is a library that can be embedded in your application allowing communition with the web and permitting Ada programs to exchange information via HTTP.
  • Pages

    GNATdashboard

    GNATdashboard integrates the results of AdaCore’s static and dynamic analysis tools within an interface providing metrics on code quality, complexity.
  • Pages

    Ada-Java Interfacing Suite

    The GNAT Ada-Java Interfacing Suite is a cluster of GNAT Pro add-on tools that combine native Ada code with Java applications that run on a JVM.
  • Pages

    GNATstack

    GNATstack enables Ada/C/C++ software development teams to accurately predict the maximum size of the memory stack required for an embedded application.
  • Pages

    Coding Standard Verification

    GNATcheck verifies the source code's conformance with the specified rules and helps demonstrate the system’s compliance with respect to standards.
  • Pages

    GNATbench

    The GNATbench IDE supports both stand-alone Eclipse and also Workbench, the Wind River Systems (WRS) extension to Eclipse for embedded systems development.
  • Pages

    Other Utilities

    GNAT Pro's extensive toolsuite has utilities for analysis, testing and code navigation producing and generating a range of useful information.
  • Pages

    Avionics

    AdaCore has a long and successful history serving customers in the Avionics industry building systems requiring DO-178B/DO-178C certification.
  • Pages

    Company

    AdaCore helps developers build safe and secure software through robust tools and expertise. The Ada ecosystem is made stronger through our partners.
  • Pages

    About AdaCore

    AdaCore helps people build software that matters and GNAT Pro has grown into the benchmark Ada, C, and C++ environment for critical industries.
  • Pages

    Careers

    AdaCore is a diverse, passionate and commited team, and is looking for individuals who want to help our customers develop better quality software.
  • Pages

    Contact

    Contact AdaCore for software pricing and evaluation requests, expert customer support, website and GNAT Tracker comments, and any general inquiries.
  • Pages

    Community

    The GNAT Community edition is available at no charge for academic or free software developers or for those who want to learn more about Ada.
  • Pages

    Academia

    No-cost toolset (binary distribution of the GNAT toolset, add-ons and libraries) and support designed to give educators the tools they need to teach Ada.
  • Pages

    Member Projects

  • Pages

    Member Universities

    The GNAT Academic Program with over 200 members links teachers of Ada the world over and provides a way for members to exchange knowledge and resources.
  • Pages

    Get Started

    GNAT is a robust and flexible Ada and SPARK development environment. It comprises a full compiler, an IDE, and a comprehensive accompanying toolsuite.
  • Pages

    GNAT Community Contact Form

    A contact form for sending comments and questions to AdaCore relating to issues concerning the GNAT Community Edition and corresponding toolset.
  • Pages

    Customer Projects

    AdaCore provides targeted tools and services to customers in industries with a need for safety and security. Learn more about our industries and customers.
  • Pages

    Find the Bug Challenge

    A fun demo showing the scope of CodePeer’s code analysis capabilities so that you can measure your bug-finding capacities to those of CodePeer.
  • Pages

    GtkAda

    Use GtkAda for portable, efficient GUI-driven applications in Ada. It provides bindings to Gtk+, Glib, Cairo, and Pango as well as a number of widgets.
  • Pages

    GNATcoverage

    GNATcoverage helps assess a testing campaign’s completeness by providing sound analysis and evidence that all of the code has been sufficiently exercised.
  • Pages

    Training

    AdaCore provide basic abd advanced- level training courses on the Ada and SPARK programming languages and various tools from the GNAT Pro technology.
  • Pages

    Consulting

    AdaCore provides onsite support and custom development services for projects requiring specialized expertise (tool integration, new platform ports, etc.).
  • Pages

    Ada Essentials

    This course provides an introduction to programming in Ada. It explains Ada’s (including Ada 2012) features, emphasizing how to construct reliable systems.
  • Pages

    Ada Advanced Topics

    This course explains many advanced topics that Ada programmers need to be familiar with (access types, generic units, predefined library, etc.)
  • Pages

    GNAT Static Analysis Suite (SAS)

    This course shows how to use AdaCore tools to improve overall code quality, testing, and debugging. It also presents a number of GNAT compiler options.
  • Pages

    Hands-On with GNAT Studio

    This course shows how to use GNAT Studio for advanced editing and debugging, invoking the full toolchain, managing projects, and how to customize the tool.
  • Pages

    SPARK Essentials

    The course explains the rationale of SPARK 2014 and shows how to use the SPARK Pro Toolset both in new projects and in the context of existing systems.
  • Pages

    DO-178B and DO-178C for Software Professionals

    This course covers the key concepts to DO-178B/C avionics certification and highlights how best to use the GNAT Pro toolset to achieve certification.
  • Pages

    Pricing

    AdaCore products are available as an annual subscription giving access to the tools, new releases and Frontline Support accessed through GNAT Tracker.
  • Press Releases

    AdaCore and Altran announce fourth year of High Integrity Software Conference sponsorship

    12 September 2017 AdaCore and Altran have announced their renewed sponsorship of the annual High Integrity Software Conference, which takes place in Bristol on 17th October 2017. Now in its fourth year, the mission of the High Integrity Software Conference is to share challenges, best practice and experiences between software engineering practitioners engaged in complex systems. The conference is endorsed by official supporters BAE Systems and Jaguar Land Rover and plays host to a number of industrial exhibitors.
  • Press Releases

    AdaCore’s GNAT Pro Supports Wind River’s FACE Conformant VxWorks 653 Platform

    Ada Development Environment helps embedded software developers produce reliable, safe and secure systems
  • Press Releases

    AdaCore Launches “Make with Ada” Programming Competition, with €5000 Top Prize

    Programming competition aimed at embedded systems programmers, to demonstrate Ada’s benefits for reliable, safe and secure software
  • Press Releases

    New SPARK Adoption Guidance Published

    Free booklet, co-authored by Thales, explains how to exploit SPARK/Ada technology to achieve high levels of software assurance
  • Press Releases

    AdaCore Releases GNAT Pro 17 Development Environment for SYSGO’s PikeOS RTOS

    AdaCore/SYSGO Partnership Fosters Spread of Embedded Ada
  • Press Releases

    AdaCore Publishes Handbook on DO-178C/ED-12C Guidance

    Free booklet shows how AdaCore qualified tools can reduce costs of certifying airborne software
  • Press Releases

    AdaCore’s CodePeer Officially Registered as CWE-Compatible

    Detects buffer overflow and other dangerous software errors
  • Press Releases

    Winners Announced for First Annual “Make with Ada” Programming Competition

    ARM embedded systems projects demonstrate Ada’s benefits for reliable, safe and secure software
  • Press Releases

    AdaCore and Altran to sponsor High Integrity Software Conference

    20 September 2016 — AdaCore and Altran have announced their renewed sponsorship of the annual High Integrity Software Conference, which takes place in Bristol on 1 November 2016.
  • Press Releases

    Ada on Board: GNAT Pro Helps ExoMars Get to the Red Planet

    Thales Alenia Space implements critical spacecraft software in Ada
  • Press Releases

    Free Booklet Shows How AdaCore’s Technologies Can Help Railway Software Developers Meet EN 50128 Obj

    New 70-page report explains how to reduce safety certification effort through Ada language and qualified AdaCore tools
  • Press Releases

    AdaCore Launches “Make with Ada” Programming Competition, with €5000 Top Prize

    Programming competition aimed at embedded systems programmers, to demonstrate Ada’s benefits for reliable, safe and secure software
  • Press Releases

    Ada 2012 Language Standard Corrigendum Approved by ISO

    Ada 2012 Language Standard Corrigendum Approved by ISO
  • Press Releases

    AdaCore Releases GNAT Pro 7.4

    New version of Ada Development Environment highlights annual major release of company product line
  • Press Releases

    AdaCore Releases SPARK Pro 16

    Formal verification toolset helps reduce certification effort for safety-critical and high-security systems
  • Press Releases

    French Agency DGA Selects AdaCore’s GNAT Pro with SQUORE Technology

    Two-year project designed for auditing and certifying military software initiatives
  • Press Releases

    AdaCore’s CodePeer Selected for Digital Terrain System Requiring DO-178B Certification

    Static analysis tool to be qualified as DO-178B verification tool, reducing software certification costs for industry leader UTC Aerospace Systems
  • Press Releases

    Celebrating Ada Lovelace: The Pioneer of Programming

    Commemorating Lady Ada’s 200th birthday, AdaCore’s detailed graphic summarizes her life and accomplishments, recaps milestones and resources for programming language named in her honor
  • Press Releases

    AdaCore Introduces GNAT GPL 2015 for the Raspberry Pi 2

    Latest version of AdaCore cross-development environment targets students and other developers of nonproprietary software
  • Press Releases

    AdaCore’s GNAT Pro Available for Wind River VxWorks 7

    Offers Full Ada, Support for the Latest Wind River RTOS,
More Seamless Integration with Workbench
  • Press Releases

    SPARK Going to the Moon

    Vermont Technical College writing flight software for Lunar IceCube, will use GNAT Pro and SPARK
  • Press Releases

    AdaCore President Robert B. K. Dewar (1945-2015)

    NEW YORK and PARIS, July 2, 2015. With great sadness, AdaCore announces the passing of Robert Dewar, company President and one of its founders. Dr. Dewar succumbed to cancer on June 30, 2015. He had a distinguished career as a Professor of Computer Science at New York University (NYU), played a key role in the design and implementation of the Ada programming language, and founded AdaCore, along with four colleagues, in 1994.  He served as its CEO until 2012 and as its President until his death.
  • Press Releases

    AdaCore Releases CodePeer 3.0

    Advanced static analysis tool for Ada has been qualified under DO-178B and EN50128, 
adds support for IEEE 754 floating point semantics and enhances support for project files
  • Press Releases

    AdaCore Releases GNAT Pro 7.3

    New version of Ada Development Environment highlights annual major release
 of company product line
  • Press Releases

    ProofInUse Initiative Launched, Will Deliver Verification Tools for Critical Systems

    Public/private laboratory for mathematical proof-based tools led by Inria and AdaCore
  • Press Releases

    New Release of Muen Separation Kernel Upgrades to SPARK 2014 for Formal Verification

    Successful transition to SPARK 2014 marks major milestone for Swiss university’s high-security kernel
  • Press Releases

    AdaCore Launches GNATdashboard

    New tool helps Ada developers keep technical debt in check, supports quality assurance activities, integrates and aggregates results of AdaCore’s static and dynamic analysis tools
  • Press Releases

    AdaCore's CodePeer Static Analysis Tool Earns Qualification for Software Verification in Avionics, R

    Automatic code review and validation tool meets rigorous industry software verification standards; provides trusted reliability for Ada developers in safety-critical applicationsNEW YORK, PARIS and BRISTOL, October 23, 2014, High Integrity Software Conference, Bristol, UK -- AdaCore today announced that its CodePeer advanced static analysis tool for the automated review and validation of Ada source code has been qualified as a software verification tool for developers in both avionics and railway industries.CodePeer assesses the program before execution to find errors efficiently and early in the development life cycle. Using advanced mathematics, CodePeer analyzes every line of software, considering every possible input and every path through the program. It performs impact and vulnerability analysis when existing code is modified, and, using control-flow, data-flow and other advanced static analysis techniques, it detects problems that would otherwise require labor-intensive debugging.“In safety-critical domains, developers need very strong assurances that the tool they’re using to assess their code is reliable, can be trusted, and will substantially reduce the need for manual code review,” says Arnaud Charlet, CodePeer Product Manager and Technical Director at AdaCore. “CodePeer has been through rigorous industry-specific tests for avionics and railway that fully affirm its value and reliability in these and other safety-critical development environments.”
  • Press Releases

    AdaCore Development Environment Selected for New Spanish Satellite Project

    NEW YORK, PARIS and BRISTOL, October 23, 2014, High Integrity Software Conference, Bristol, UK – AdaCore today announced that its GNAT Pro cross-development environment has been selected by the Polytechnic University of Madrid (Universidad Politécnica de Madrid / UPM), for the UPMSat-2 UNION satellite project’s real-time on-board and ground control software. The 50kg micro-satellite, scheduled to be launched in Q4 2015, will provide a technology demonstration platform for the university from a sun-synchronous orbit nearly 600 km above Earth.
  • Press Releases

    AdaCore Releases GNAT GPL for Bare Board ARM

    Freely available toolsuite brings power of Ada language to global ARM ecosystem
  • Press Releases

    SmartWard Pty Ltd Selects AdaCore Tools for Hospital Information System Development

    Ada chosen for benefits in reliability, safety, and security
  • Press Releases

    Altran and AdaCore Release Next-Generation Static Verification Toolset

    SPARK Pro 14.0 brings new proof technology and additional language features to developers of high-integrity software
  • Press Releases

    AdaCore Releases GNAT Pro 7.2 for Android

    New major release of AdaCore’s development environment extends support for ARM platforms
  • Press Releases

    GNAT Pro Safety-Critical Development Environment Released for LynxOS-178

    New platform extends AdaCore product offerings in embedded safety-critical marketplace
  • Press Releases

    AdaCore Releases GNAT Pro 7.2

    New major release of Ada software development environment includes 120+ new features and extends support across ARM platforms
  • Press Releases

    AdaCore Releases GNAT Pro 7.2 for ARM/Linux

    New major release of AdaCore’s development environment extends support for ARM platforms
  • Press Releases

    AdaCore Releases New Version of GNATcoverage Dynamic Analysis Tool

    Award-winning, non-intrusive coverage tool supports all levels of safety certification and adds hardware probe functionality
  • Press Releases

    AdaCore Releases Major New Version 2.3 of CodePeer Static Analysis Tool

    Automatic code review and validation tool brings a new level of flexibility and efficiency to Ada software developers
  • Press Releases

    Deep Blue Capital Selects AdaCore Products for Financial System Development

    Reliable Ada software gives trading firm a competitive edge
  • Press Releases

    Muen Separation Kernel Lays Open Source Foundation for High-Assurance Software Components

    Swiss university develops formally verified Open Source kernel using SPARK language and AdaCore GNAT tools
  • Press Releases

    AdaCore and Altran Toolsets Help Launch CubeSat into Orbit

    NASA-sponsored satellite from Vermont Technical College uses GNAT Pro and SPARK
  • Press Releases

    AdaCore Releases Major New Version of GNAT Programming Studio 6.0

    GPS 6.0 Integrated Development Environment brings upgraded and modernized “Look and Feel”
  • Press Releases

    Ada 2012 Language Rationale Published

    New educational resource by Ada expert John Barnes explains key Ada 2012 concepts
  • Press Releases

    AdaCore Launches Free, Online Ada Educational Resource for the Software Development Community

    NEW YORK and PARIS, September 25, 2013 – AdaCore today launched AdaCore University - a free, web-based resource center for anyone interested in learning about, or how to program in, the Ada programming language. The new website offers pre-recorded courses and other learning materials on Ada, with access to AdaCore’s GNAT Ada toolset for writing and running example programs. It also utilizes the latest in website design and learning tool features. Students at all levels of experience and expertise can begin writing programs quickly and can proceed at their own pace.
  • Press Releases

    AdaCore Brings Ada to Wind River Linux

    GNAT Pro 7.1 now on Wind River Linux, with full Ada 2012 support
  • Press Releases

    Astrium Selects AdaCore’s GNAT Pro and PolyORB for International Space Station

    Ada-based software development environment and middleware ensure high reliability of essential communications technologies for ISS’ Core Ground System
  • Press Releases

    AdaCore Announces Successful Completion of Project Hi-Lite

    Open Source project eases high integrity software development by combining formal methods with testing
  • Press Releases

    TOYOTA ITC Japan Selects SPARK Pro Language and Toolset for High-Reliability Research Project

    SAN JOSE, Calif., NEW YORK and PARIS, April 23, 2013 – Design West Conference –  AdaCore and Altran today announced TOYOTA InfoTechnology Center (ITC) Japan’s selection of the SPARK language and SPARK Pro toolset for a high-reliability software research project. The goal of the project is to show that software requirements can be transformed into an implementation that can be proven to be free of run-time errors. This will have the key advantage of providing ultra-low-defect software for higher reliability in a vehicle component. An added benefit is the reduction of development and maintenance effort, since the formal approach being used can give mathematical assurance to a variety of correctness properties, reducing the need for certain types of testing and eliminating the need for post-deployment corrections.
  • Press Releases

    AdaCore Releases Major New Version 2.2 of CodePeer Static Analysis Tool

    SAN JOSE, Calif., NEW YORK and PARIS, April 23, 2013 – Design West Conference –  AdaCore today announced the release of CodePeer 2.2, the advanced static analysis tool that helps developers detect potential run-time and logic errors in Ada programs. CodePeer is able to find non-trivial problems by systematically analyzing every possible input and path through the program, and can be employed very early in the development cycle to identify defects when they are the least costly to repair.
  • Press Releases

    AdaCore Releases GNAT Pro 7.1

    Latest Ada development environment brings full Ada 2012 support and other enhancements
  • Press Releases

    AdaCore Releases GNAT Pro Safety-Critical for ARM Processors

    Ada now available for popular bareboard platform
  • Press Releases

    AdaCore and Wind River to Offer Joint Product Training Services in Europe

    Training and Mentoring Solutions to Optimize Customers’ Embedded Software Development
  • Press Releases

    Ada 2012 Language Standard Approved by ISO

    Language revision adds contract-based programming, multicore support, and other advanced features
  • Press Releases

    GNAT Pro Safety-Critical used by Terma A/S for Space Monitor Project

    PARIS, NEW YORK, December 17, 2012 – Paris Space Week 2012- AdaCore today announced that Terma A/S has selected the GNAT Pro Safety-Critical development environment to develop onboard software for the Atmosphere-Space Interactions Monitor (ASIM) that will be mounted on the Columbus module of the International Space Station. Terma will useGNAT Pro Safety-Critical combined with the GNATemulator and GNATcoverage dynamic testing tools to develop and test the application prior to deployment on the actual LEON 3 embedded processor.
  • Press Releases

    GNAT Pro Solves Data Endianness Portability Challenge

    Compiler automatically handles conversions, simplifies Ada development and maintenance
  • Press Releases

    Traceability Analysis Helps Rockwell Collins Achieve DO-178B Certification

    BOSTON, December 4, 2012  - ACM SIGAda HILT Conference -  AdaCore today announced the successful usage of its Code Traceability Analysis for DO-178B by Rockwell Collins in the certification of the Integrated Display System (IDS) for a large, next-generation, commercial aircraft. The Traceability Analysis package is part of the evidence needed to satisfy the DO-178B objectives for structural code coverage at Level A, the highest (most stringent) level for avionics software safety.
  • Press Releases

    AdaCore and Altran Praxis Release SPARK Pro 11

    Increased verification efficiency for high-assurance systems
  • Press Releases

    Rockwell Collins Develops SecureOne™ with SPARK Pro and GNAT Pro High-Security

    NEW YORK, PARIS, and CEDAR RAPIDS, Iowa, September 17, 2012 - Design East Boston 2012 - AdaCore today announced the successful usage of its SPARK Pro and GNAT Pro High-Security products by Rockwell Collins in the development of the SecureOne™ Guard, a high assurance cross domain guard for military tactical systems. The SecureOne Guard has strict requirements for reliability and security. In order to meet these needs, Rockwell Collins selected SPARK Pro and GNAT Pro High-Security as key development tools for the project.
  • Press Releases

    SmartSide Adopts Ada and GNAT Pro for Smart Devices Platform

    PARIS, NEW YORK, June 20, 2012 - SG PARIS 2012 Conference - AdaCore today announced that SmartSide, a Paris-based company providing Smart Metering and Smart Grid management solutions, has adopted the Ada programming language and AdaCore’s GNAT Pro development environment for the implementation of their Smart Devices platform. SmartSide offers multi-energy meter data management systems. Distribution Network Operators use SmartSide technology to optimize their Smart Grid networks through the secure, reliable, highly-interoperable and business-oriented Smart Energy Core platform.
  • Press Releases

    Saab Electronic Defence Systems Adopts CodePeer

    PARIS, NEW YORK, and GÖTEBORG. June 12th, 2012 – Ada Europe Conference - AdaCore today announced that Saab Electronic Defence Systems (Sweden) has adopted the CodePeer static analyzer tool for use on the GIRAFFE project. This advanced static analysis tool helps developers detect potential run-time and logic errors in Ada programs. By mathematically analyzing every line of software, and considering every possible input and every path through the program, CodePeer can be used very early in the development lifecycle to identify problems when defects are much less costly to correct.
  • Press Releases

    Embraer Selects Ada and AdaCore’s GNAT Pro for AMX Upgrade

    SAN JOSE, Calif., NEW YORK and PARIS, March 26, 2012 – Design West Conference – AdaCore, provider of tools and expertise for the mission-critical, safety-critical, and security-critical software communities, today announced that Embraer Defense and Security has selected the GNAT Pro Ada development environment from AdaCore as a primary tool set to develop the Operation Flight Program for the AMX Modernization program. GNAT Pro will be used along with Wind River’s VxWorks real-time operating system (RTOS) as the foundation to develop this critical software system on the AMX Modernization effort.
  • Press Releases

    AdaCore Releases GNAT Pro 7.0

    Open-source research projects combine model-based integration and qualified code generation for safety-critical systems
  • Press Releases

    AdaCore Releases Major New Version 2.1 of CodePeer Static Analysis Tool

    Full support for the upcoming Ada 2012 language standard
  • Press Releases

    'Project P' and 'Hi-MoCo' Research Projects Launched

    Open-source research projects combine model-based integration and qualified code generation for safety-critical systems
  • Press Releases

    AdaCore Launches GNATtest

    Unit test harness generator reduces test development effort for large software projects
  • Press Releases

    AdaCore and SofCheck Merge

    Ada expert Tucker Taft joining AdaCore as Director of Language Research
  • Press Releases

    Eurocopter Selects GNAT Pro for Military Helicopter ARINC 653 Project

    NEW YORK, PARIS and TOULOUSE, France, November 29, 2011 - Certification Together Conference – AdaCore, provider of Ada tools and expertise for the mission-critical, safety-critical, and security-critical software communities, today announced that Eurocopter has chosen the GNAT Pro High-Integrity Edition for development of an ARINC-653 demonstrator for military helicopters. The demonstrator will provide military interfaces and operational functions within a time- and memory-partitioned ARINC-653 architecture.
  • Press Releases

    Qualification Material Available for GNATcheck and GNATcoverage

    AdaCore releases components allowing more agile software certification
  • Press Releases

    AdaCore Takes On Agile Certification: the OPENCOSS and pSafecer Projects

    AdaCore brings its high-integrity expertise to key collaborative projects
  • Press Releases

    AdaCore Releases Major New Version of GNAT Programming Studio 5.1

    GPS 5.1 Integrated Development Environment brings new C/C++ features, improved support for CodePeer, and more powerful source editing
  • Press Releases

    Digicomp Shows Continuing Success with Ada and GNAT Pro

    Company reaffirms long-standing relationship with AdaCore
  • Press Releases

    AdaCore’s GNATcoverage Product Awarded Electron d'Or Prize

    Open Source coverage analysis tool wins prize in 14th annual award program
  • Press Releases

    Siemens Switzerland Selects AdaCore Toolset for Railway Project

    GNAT Pro to be used for safety-critical software development of railway control system
  • Press Releases

    AdaCore and Altran Praxis Release SPARK Pro 10

    Increased flexibility and functionality for high-assurance systems
  • Press Releases

    NIST Report Shows SPARK Most Suitable Language for Secure Programming

    SPARK language shown to have fewest vulnerabilities
  • Press Releases

    Thales Selects AdaCore Toolset for Argos Satellite Project

    GNAT Pro to be used on high-assurance software for global location and data collection system
  • Press Releases

    Rockwell Collins Selects GNAT Pro for Advanced Avionics Display System

    GNAT Pro High-Integrity Edition for DO-178B used for EFIS/EICAS upgrade and modernization
  • Press Releases

    AdaCore Helps Singo Solution Implement Scalable, Robust Call Management System

    Improved quality, reliability, and performance in new Blaze product
  • Press Releases

    AdaCore Releases Major New Version of CodePeer Source Code Analysis Tool

    More efficient, generates fewer “false positive” messages
  • Press Releases

    AdaCore Releases GNAT Pro 6.4

    Ada development environment brings new features, platforms, and tool support
  • Press Releases

    EADS CASA Selects AdaCore Toolset for nEUROn Unmanned Aircraft

    GNAT Pro supports high-integrity systems on European unmanned air combat vehicle
  • Press Releases

    Airbus Military Certifies to DO-178B level A Using GNATcheck

    NEW YORK, PARIS and NUREMBURG, Germany, March 1, 2011 – Embedded World Conference - AdaCore, provider of tools and expertise for the mission-critical, safety-critical, and security-critical software communities, today announced that Airbus Military has successfully certified the Airbus Military Aerial Refueling Boom System (ARBS) on the A330 Multi Role Tanker Transport (MRTT). The certification was simplified by the use of the qualified GNATcheck tool to verify conformance to the software coding standard required by the ARBS project. Verification of conformance was undertaken as part of the DO-178B level A Software Verification Process.
  • Press Releases

    AdaCore Releases New GNATcoverage Tool

    AdaCore Releases First Non-Intrusive Coverage Tool to Fully Support All Levels of Safety CertificationNew GNATcoverage tool provides advanced program coverage analysis on both object code and source code
  • Press Releases

    AdaCore Releases New GNATemulator Tool

    AdaCore Releases New GNATemulator Tool for Efficient Embedded Software Testing Provides open source, integrated, lightweight target emulation
  • Press Releases

    AdaCore releases GPS 5.0

    GPS 5.0 Integrated Development Environment brings enhanced multi-language support, more powerful source editing, and improved ease of use
  • Press Releases

    Enhanced Solutions for Multi-Language Systems

    NEW YORK and PARIS, September 21, 2010 – Embedded Systems Conference BostonAdaCore, a leading supplier of Ada development tools and support services, today announced a comprehensive set of tools and support services for projects where Ada is used in conjunction with other programming languages. Available with GNAT Pro 6.3, the latest release of AdaCore’s Ada Development Environment, the solutions include tools and libraries to handle the various ways in which multi-language systems are designed and constructed.
  • Press Releases

    AdaCore Upgrades GNATbench for Wind River Workbench

    New platforms and features benefit Ada developers on Wind River Workbench
  • Press Releases

    Security Given Short Shrift in Automotive Software Development, says AdaCore

    NEW YORK and PARIS, August 23, 2010 – With each new model year, cars are becoming more dependent on microprocessors and complex software, challenging the auto industry to ensure that these systems are secure, safe, and reliable. According to AdaCore, this challenge is not being met: security and safety issues are not being properly considered at the start of the automotive system design cycle, but are instead being addressed as an afterthought. A recent paper from Rutgers University and the University of South Carolina, detailing preventable security flaws of in-car wireless networks, confirms AdaCore’s thesis.
  • Press Releases

    AWS available for Wind River’s VxWorks

    Ada Web Server brings web-based connectivity and control to embedded applications
  • Press Releases

    Open Source SPARK Implementation of Skein Algorithm

    SPARKSkein reference implementation achieves success ahead of Crypto 2010 conference
  • Press Releases

    SPARK Pro Adopted by secunet

    High-assurance development environment selected to implement multi-level security workstation
  • Press Releases

    AdaCore Announces Hi-Lite Project

    New consortium aims to promote formal methods for high integrity software
  • Press Releases

    Rockwell Collins Selects SPARK Pro for Security and Information Assurance

    SPARK tools complement GNAT Pro for High Assurance Software projects
  • Press Releases

    GNAT Pro High-Integrity Edition For VxWorks MILS Platform now available

    A complete security application development environment for EALs 1 through 7
  • Press Releases

    MBDA Extends Global Software Licensing Agreement with AdaCore

    Leading missile company adopts SPARK Pro and AdaCore’s GNAT Pro development environments as corporate standard
  • Press Releases

    SPARK Pro 9 now available

    New SPARK Pro 9 Development Environment Delivers Increased Security Assurance for Critical Projects
  • Press Releases

    Barco selects GNAT Pro for Advanced Avionics Applications

    AMSTERDAM, NEW YORK and PARIS, March 24, 2010 – Avionics Europe 2010 – AdaCore today announced that global display company Barco has developed an advanced business jet avionics display system using the AdaCore GNAT Pro Ada development environment. Barco selected the GNAT Pro High Integrity Edition, along with the Traceability Kit, running on Wind River’s VxWorks 653 RTOS in order to meet the highest levels of safety standard DO-178B.
  • Press Releases

    AdaCore Releases GNAT Pro 6.3

    Ada development environment now supports 64-bit code generation on Windows
  • Press Releases

    GNAT Pro support for PikeOS

    New Safety-Critical RTOS Platform for GNAT Pro High-Integrity Edition
  • Press Releases

    AdaCore Launches CodePeer Tool

    Automated code review assistant helps eliminate bugs and vulnerabilities
  • Press Releases

    AdaCore partners with MICROTASK Embedded

    New Italian distributor extends reach of Ada tools and support
  • Press Releases

    AdaCore Introduces Enhanced Version of GNAT Programming Studio

    >
  • Press Releases

    AdaCore Announces Release of GNAT Pro for LynxOS 5.0

    AdaCore Announces Release of GNAT Pro for LynxOS 5.0GNAT Pro 6.2.2 available for both PowerPC and x86 targets
  • Press Releases

    New Release of GNATbench for Wind River Workbench

    New Release of GNATbench for Wind River Workbench Extends AdaCore’s Eclipse Technology – Ada plug-in supports latest Wind River Workbench version
  • Press Releases

    Lockheed Martin Selects GNAT Pro for C-130J Software

    AdaCore’s Ada development environment chosen for Block 7.0 Upgrade
  • Press Releases

    Thales Aerospace Division Selects GNAT Pro for Airbus A350 XWB (Xtra Wide-Body)

    Safety-critical systems to be implemented in Ada 2005
  • Press Releases

    AdaCore Expands GNAT Pro Offerings to All Current VxWorks Platforms

    GNAT Pro now available for Wind River’s VxWorks 653, VxWorks MILS, VxWorks DO-178B, and VxWorks 6.7, including both AMP and SMP configurations
  • Press Releases

    Astrium in the UK Selects GNAT Pro for Environmental Satellite System

    Sentinel-1 Project Using Ada for Advanced Radar System
  • Press Releases

    PARSEC Group and AdaCore Announce Partnership

    New support solutions help Ada users migrate to modern HP architectures
  • Press Releases

    GNAT Pro available for 8-bit AVR Microcontroller

    UK Atomic Weapons Establishment selects Ada and GNAT Pro for AVR
  • Press Releases

    Praxis and AdaCore Announce SPARK Pro

    New open source tool suite improves high assurance software projects
  • Press Releases

    AdaCore Launches Traceability Analysis Package for DO-178B

    Provides customized source-to-object code traceability analysis
  • Press Releases

    BAE Systems UK Signs Corporate-Wide Contract with AdaCore

    Leading defense and aerospace company adopts AdaCore’s GNAT Pro development environment
  • Press Releases

    AdaCore Launches GNAT Pro 6.2

    New release brings technology upgrades and productivity-enhancing features
  • Press Releases

    AdaCore Introduces Latest Version of GNAT Programming Studio

    New GPS 4.3 Integrated Development Environment enables easy configurability for multiple toolchains
  • Press Releases

    AdaCore Announces GNAT Pro High-Integrity Edition for MILS

    New Member of the GNAT Pro Family to Support Multiple Independent Levels of Security
  • Press Releases

    AdaCore Announces GNAT Pro for the VxWorks SMP Capability

    Bringing a multi-threaded language to multi-core
  • Press Releases

    AdaCore and SYSGO Announce GNAT Pro for ELinOS

    Ada now available on embedded Linux
  • Press Releases

    AdaCore Announces GNAT Pro for Nucleus OS

    Ada development support for Nucleus brings reliability to high-volume, embedded computing
  • Press Releases

    Praxis and AdaCore Announce Strategic Partnership

    Product integration takes the SPARK language and toolset to the next level
  • Press Releases

    NSA Releases Secure Software Project to Open Source Community

    Tokeneer project shows the way to develop secure systems in a rigorous and cost-effective manner
  • Press Releases

    GNAT Academic Program Celebrates Its 150th Member

    New York and Newcastle, United Kingdom, September 22, 2008 – SAFECOMP 2008 - AdaCore, provider of the highest quality Ada tools and support, today welcomed the 150th member to the GNAT Academic Program (GAP), demonstrating the success of the company’s grass-roots initiative created to help bring Ada to the forefront of university study.
  • Press Releases

    Ada Language Expert Stephen Baird Joins AdaCore

    NEW YORK and PARIS – September 9, 2008 – AdaCore, provider of the highest quality Ada tools and support, today announced the appointment of Ada expert Stephen Baird to the company’s GNAT Pro implementation team. In this role, he will participate in the development and enhancement of the GNAT Pro technology, and provide expert support for AdaCore customers.
  • Press Releases

    AdaCore announces GNAT Pro for RTX

    New product brings Ada to RTX for real-time development on Windows
  • Press Releases

    Ipesoft Selects GNAT Pro to Develop Real-Time Management Systems

    Ipesoft Selects AdaCore and GNAT Pro to Develop Real-Time Management and Production Systems
  • Press Releases

    AdaCore Announces the Release of the GNAT Component Collection

    Suite of proven, reusable components now available to GNAT Pro customers
  • Press Releases

    Adacore Releases GNAT Ada-Java Interfacing Suite

    New tool suite helps developers create multi-language applications
  • Press Releases

    AdaCore Announces “Project Coverage”

    The first Open Source code coverage project for DO-178B and safety-critical systems
  • Press Releases

    AdaCore Announces Support for VxWorks 653, Version 2.2

    Now Supporting Full Integration with VxWorks 653 Platform, Version 2.2
  • Press Releases

    AdaCore Announces the Release of GNATbench 2.1.0

    Enhanced Eclipse-based development environment for Ada improves productivity; decreases time-to-market
  • Press Releases

    Indian Government selects GNAT Pro to Build New Avionics Flight Control Software

    NEW YORK, AMSTERDAM, Netherlands, and BANGALORE, India, March 5, 2008 – Avionics 2008 - AdaCore, provider of the highest quality Ada tools and support services, today announced that the Indian Aeronautical Development Establishment (ADE) has chosen AdaCore’s GNAT Pro High-Integrity Edition for DO-178B Ada environment to be used by AdaCore’s partner Mistral Solutions to create new safety-critical flight control systems that will underpin advanced Indian defense programs.
  • Press Releases

    Latest GNAT Pro Release Adds New Platforms, New Tools

    Powerful Ada Development Environment Enhanced for High-Integrity Systems
  • Press Releases

    Coding Standard Verification Tool Eases DO-178B Compliance

    TOULOUSE, France and NEW YORK - January 30, 2008 – Embedded Real-time Software (ERTS) Conference - AdaCore, provider of the highest quality Ada tools and support services, today announced the availability of GNATcheck, an integrated coding standard verification tool within the GNAT Pro development environment. GNATcheck meets the growing need for automated verification in safety-critical avionics systems, particularly those systems that need to satisfy the DO-178B standard. Developed by RTCA and EUROCAE, DO-178B defines the guidelines for development of aviation software in both the US and Europe and is being increasingly adopted by other related sectors, such as air traffic control and military applications.
  • Press Releases

    Working With Saab, AdaCore and RTI Integrate Support for Ada with DDS-Compliant Real-Time Messaging

    Industry’s first Ada bindings for AdaCore’s GNAT Pro Compiler for development of high-performance distributed real-time applications.
  • Press Releases

    Introducing New Version of GNAT Programming Studio IDE

    FAIRFAX, Va., November 6, 2007 - SIGAda 2007 - AdaCore, provider of the highest quality Ada tools and support services, today announced the upcoming release of GNAT Programming Studio (GPS) 4.2. This Ada-oriented IDE (Integrated Development Environment) accompanies AdaCore’s GNAT Pro toolset on most platforms.
  • Press Releases

    GNAT Pro Provides Multi-Language Support aboard Raytheon's SSDS

    FAIRFAX, Va., November 6, 2007 - SIGAda 2007 - AdaCore, provider of the highest quality Ada tools and support services, today announced that Raytheon has delivered the Ship Self-Defense System (SSDS) Mk 2 using GNAT Pro for LynxOS within its multi-language software development environment. SSDS Mk 2 is a combat system that integrates and coordinates the sensors and weapons systems aboard a US Naval vessel to provide a coherent tactical picture for situational awareness, command and controls, and quick-reaction self-defense. It is a single-source baseline that supports multiple system configuration modifications (MODs) for large deck ship classes (aircraft carriers and amphibious ships). GNAT Pro was specifically used on the SSDS Mk 2 to support Ada application development on the Intel processors and the LynxOS operating system.
  • Press Releases

    AdaCore Joins TOPCASED Project

    PARIS and NEW YORK, October 29, 2007 - AdaCore, provider of the highest-quality Ada tools and support services, today announced its participation as a member of the TOPCASED Project (Toolkit in Open Source for Critical Applications & System Development).
  • Press Releases

    AdaCore Launches New GPRbuild Tool To Speed Multi-Language Development

    Easy to use tool aims to solve increasing project complexity
  • Press Releases

    AdaCore Helps AAI Upgrade the T25 SECT Electronic Combat Trainer

    BOSTON, Mass. – September 18, 2007 – Embedded Systems Conference - AdaCore, provider of the highest quality Ada tools and support services, today announced another successful deployment of a mission-critical system using its GNAT Pro development environment. AAI Services Corporation utilized GNAT Pro as part of an overall upgrade to the U.S. Air Force T25 Simulator for Electronic Combat Training (SECT) system. The T25 SECT system is a software-based training aid that uses interactive combat laboratory exercises and simulated training missions to teach the principles of electronic countermeasures. As part of the upgrade, AAI Services updated one processor on the system’s student station from an SGI VME-based computer to a single board computer running Windows. The original software for the updated processor was ported to a different host and a new development station was added to the existing Training System Support Center.
  • Press Releases

    AdaCore Announces Innovative Stack Analysis Tool

    BOSTON, Mass. – September 18, 2007 – Embedded Systems Conference – AdaCore, provider of the highest quality Ada tools and support services, today announced the immediate availability of GNATstack, a static analysis tool that helps developers predict the maximum stack usage requirements for their applications. GNATstack is available separately or as part of AdaCore’s GNAT Pro High-Integrity Edition products, supporting development for DO-178B, DO-278 and other related safety-critical standards.
  • Press Releases

    AdaCore Announces GNAT Pro High-Integrity Edition for Servers

    BOSTON, Mass., September 18, 2007 - Embedded Systems Conference - AdaCore, provider of the highest-quality Ada tools and support services, today announced its second High-Integrity Edition product GNAT Pro High-Integrity Edition for Servers. The High-Integrity Family was first introduced in June of 2007 with the release of High-Integrity Edition for DO-178B, a product that supports safety-critical avionics and similar standards used in embedded software development. The new GNAT Pro High-Integrity Edition for Servers is fashioned to directly support DO-278, ESARR 4 and 6 and CAP670/SW01, the US, European and UK ground Air Traffic Management (ATM) safety-critical standards. Its capabilities can also be used to support any safety-critical, mission-critical or high reliability system requirements to run on a native platform.
  • Press Releases

    AdaCore First to Bring True .NET Integration to Ada

    PARIS and NEW YORK - September 10, 2007 - AdaCore, provider of the highest quality Ada tools and support services, today announced that its flagship GNAT Pro development environment is now available for Microsoft’s® .NET Framework. GNAT Pro's launch on .NET broadens AdaCore’s expanding portfolio of Microsoft platforms, which already includes releases for Windows 2000®, Windows 2003®, Windows XP®, and Windows Vista®. Now users of all major Microsoft platforms can also reap the productivity and reliability gains enabled by the Ada language from within the .NET Framework. This especially benefits those creating mission-critical applications, across a broad range of domains, including communications, financial software, and other enterprise systems.
  • Press Releases

    GNAT Pro Chosen for UK’s Next Generation ATC System

    NEW YORK and TAMPA, Fl., June 19, 2007 - Systems & Software Technology Conference – AdaCore, provider of the highest quality Ada tools and support services, today announced that Praxis has selected AdaCore’s GNAT Pro for the implementation of the UK’s next-generation Interim Future Area Control Tools Support (iFACTS) air traffic control system for its client NATS.
  • Press Releases

    AdaCore Announces the GNAT Pro High-Integrity Edition for DO-178B

    Specialized development environment and tool set supporting safety-critical standards
  • Press Releases

    AdaCore Brings Industry Leading Ada Expertise to the Eclipse Foundation

    NEW YORK, May 14, 2007 - AdaCore, provider of the highest quality Ada tools and services, today announced that it has joined the Eclipse Foundation as an Add-In-Provider. This membership level allows AdaCore to participate in the development of the Eclipse ecosystem, and to offer the breadth of their Ada expertise to the Eclipse community as a whole. Eclipse is an important part of AdaCore's corporate and product strategy. The company tapped into the growing popularity of the Eclipse framework early on, adding an Eclipse plug-in to the company's comprehensive GNAT Pro Ada tool-suite last year. And the company continues to provide customers with the latest technology available with the recent major upgrade to its GNATbench plug-in, offering new capabilities to support Eclipse 3.2, the latest version of the popular open source platform for integrating software tools for application development.
  • Press Releases

    MBDA Signs Global Software Licensing Agreement with AdaCore

    Leading missile company adopts AdaCore’s GNAT Pro development environment as corporate standard
  • Press Releases

    AdaCore Announces GNATbench Version 2.0 for Eclipse 3.2

    SAN JOSE, Calif. - April 3, 2007 - Embedded Systems Conference - AdaCore, provider of the highest quality Ada tools and support services, announced the future availability of GNATbench Version 2.0, a major enhancement to its GNATbench Eclipse-based plug-in, which supports native (standard) Eclipse and Wind River’s Eclipse-based Workbench software development environments. GNATbench Version 2.0 has been upgraded with new capabilities to support Eclipse 3.2, the latest version of the popular open source platform for integrating software tools for application development. The upgrade provides development teams using the Eclipse 3.2 framework with advanced Ada language support and a fully integrated GNAT Pro Ada toolset to facilitate multi-language development, sophisticated editing, browsing, debugging, and comprehensive compilation.
  • Press Releases

    AdaCore Announces GNAT Tracker Version 2

    Enhanced Web-based Interface Sets the Bar for Unrivaled Customer Support
  • Press Releases

    Saab Signs Corporate Wide Software License With AdaCore

    NEW YORK and AMSTERDAM, Netherlands, March 7, 2007 - Avionics Exhibition and Convention - Saab, one of the world’s leading high-technology companies, today signed a corporate wide licensing agreement with AdaCore. Saab will adopt AdaCore’s GNAT Pro development environment for projects across the organisation and will standardise on GNAT Pro.
  • Press Releases

    AdaCore Announces First to Market Full Ada 2005 Development Environments

    NEW YORK and AMSTERDAM, Netherlands, March 7, 2007 - Avionics Exhibition and Convention - AdaCore, provider of the highest quality Ada tools and support, announces the first to market Ada 2005 language development environment, with the release of GNAT Pro version 6.0.1. Ada 2005, ISO/IEC 8652, was formally approved by ISO SC22/WG9 in January 2007. From the start AdaCore has actively participated in the ISO language standard revision process. This has enabled us to be at the forefront in supporting our customers and their use of the new Ada 2005 language standard.
  • Press Releases

    Gregory Gicca Appointed as Director of Safety and Security Product Marketing

    NEW YORK, January 22, 2007 – AdaCore, the leading Ada technology supplier, today announced the appointment of Gregory A. Gicca as the Director of Safety and Security Product Marketing. In this role Mr. Gicca will help plan, guide, and promote AdaCore’s GNAT Pro product offerings for the safety-critical and high-security sectors.
  • Press Releases

    AdaCore Celebrates C-130 AMP’s Maiden Flight

    New York and Paris, December 12, 2006 – AdaCore joins The Boeing Company, Smiths Aerospace and Wind River Systems in celebrating the successful first flight of the C-130 Avionics Modernization Program (AMP) aircraft, which took place on September 19. AdaCore serves as a key member of Smiths Aerospace’s development team for the C-130 AMP’s Mission Processor (MP). The MP provides primary computing capability for the cockpit display generation, and extensive video processing, which supports the manipulation and distribution of new and legacy video sources to all aircraft displays. The U.S. Air Force initiated the C-130 AMP to standardize configurations, lower the cost of ownership, and increase survivability of its aging C-130 aircraft. It is the most comprehensive C-130 avionics modification ever conducted.
  • Press Releases

    AdaCore Announces New Software Stack Analysis Tool

    GNATstack ensures safe stack calibration in software systems; creates audit trail for certified applications
  • Press Releases

    AdaCore Launches Remote Programming Solution

    Advanced IDE facility brings significant productivity benefits to software developers
  • Press Releases

    ASSERT Project Adopts Ada 2005

    New Ada standard improves embedded real-time development.
  • Press Releases

    GNAT Pro to Support Boeing’s Real-time Simulation Systems

    AdaCore’s GNAT Pro Development Environment to Support Boeing’s Real-time Simulation Systems
  • Press Releases

    AdaCore Delivers Enhanced Ada Integrated Development Environment

    New features in GNAT Programming Studio improve programmer productivity
  • Press Releases

    New AdaCore Plug-in Bridges the Gap Between GNAT Pro and Eclipse

    NEW YORK, NY, USA - AdaCore today announced its latest technology addition - a stand-alone version of the company’s GNATbench plug-in that integrates Ada into native (standard) Eclipse. GNATbench offers the familiar Eclipse “look and feel” when utilizing GNAT Pro’s leading-edge compiler, tools and capabilities, and supports both all-Ada and mixed-language development. With one simple plug-in, GNATbench lets Eclipse users access the benefits of GNAT Pro Ada to develop more reliable applications with fast, predictable performance and at lower cost.
  • Press Releases

    GNAT Pro Supports Simulator for VxWorks 6 and VxWorks 653

    ORLANDO, FL, USA - Today at the Wind River Worldwide User Conference AdaCore announced that its flagship GNAT Pro Ada development environment now supports the latest versions of the Wind River® VxWorks Simulator, a prototyping and simulation tool for VxWorks® 6 and VxWorks 653 applications in the Wind River“ Workbench development suite. VxWorks Simulator (formerly known as VxSIMTM) enables application development and testing without the need for target hardware – either before hardware is available, or to reduce the number of targets required, thereby lessening development cost. It is fully integrated into the Wind River Workbench development suite for execution of VxWorks applications, allowing complete configuration, execution and debugging control through standard interfaces on the host platform.
  • Press Releases

    Hamilton Sundstrand Selects GNAT Pro For 787 Air Conditioning Control Unit

    SALT LAKE CITY, UT, USA - Today at the Systems & Software Technology Conference AdaCore announced that Hamilton Sundstrand has chosen AdaCore’s GNAT Pro as the Ada development environment for the software running in their Air Conditioning Pack airborne software configuration, which regulates cabin air temperature on the 787 aircraft. As part of the contract, AdaCore will adapt its flagship GNAT Pro Ada development environment to generate code for the 787 Pack Control Unit’s designated MPC5554 microcontroller, and provide support for this new, specialized configuration.
  • Press Releases

    GNAT Pro Now Available for HP OpenVMS on HP Integrity Servers

    GNAT Pro helps customers meet stringent requirements for mission-critical software systems
  • Press Releases

    AdaCore’s GNAT Pro Brings Ada to x86-64 GNU/Linux

    GNAT Pro and Ada ease customer transition to high-performance, 64-bit applications.
  • Press Releases

    Thales Group Adopts AdaCore as a corporate Ada Standard

    Signs three year global agreement to benefit from flexible software licensing terms
  • Press Releases

    AdaCore Launches New Version of its Ada Integrated Development Environment

    NEW YORK, NY, USA - AdaCore today introduced the latest and most versatile version of its GNAT Programming Studio (GPS) product, a sophisticated software development environment for the Ada programming language.
  • Press Releases

    Ada Expert Robert A. Duff Joins AdaCore Team

    NEW YORK, NY, USA - AdaCore, a leading Ada technology supplier, today announced the appointment of Ada expert Robert A. Duff to the company’s core technical team. Mr. Duff will be responsible for designing and implementing enhancements to the GNAT Pro Ada Development Environment.
  • Press Releases

    AdaCore Brings the Power of GNAT Pro to Wind River’s Workbench Environment

    NEW YORK, NY, USA - AdaCore, a Wind River leading Ada technology supplier, today announced a GNAT Pro plug-in developed specifically for the Wind River® Workbench development suite. Especially suited for large, embedded, real-time applications running VxWorks® RTOS, AdaCore's GNATbench solution combines the reliability of Ada development and compilation technology with Wind River's popular Eclipse-based, open device software development framework. The result is a fully integrated Ada toolset that enhances Workbench to facilitate multi-language development, sophisticated editing, browsing, debugging, and comprehensive compilation for advanced VxWorks systems creation.
  • Press Releases

    AdaCore Announces Support for Wind River's VxWorks 6

    NEW YORK, NY, USA - AdaCore, a Wind River leading Ada technology supplier, today announced that its industry-leading GNAT Pro Ada development environment will support version 6 of Wind River's VxWorks® RTOS. Developed in conjunction with Wind River, AdaCore's GNAT Pro for VxWorks 6 is targeted to the Wind River® General Purpose Platform on the PowerPC, from Windows, GNU/Linux and Solaris host environments.
  • Press Releases

    AdaCore Brings Ada to AltiVec - Support For Leading Weapons Company

    PARIS, FRANCE - AdaCore, the leader in Ada solutions, today announced GNAT Pro Ada development tool suite support for Freescale Semiconductor, Inc.'s high-performance AltiVec® instruction set. The ability to access AltiVec instructions from Ada was initiated by MBDA, a world leading, global missile systems company. MBDA wanted to combine the potential power of AltiVec with the 'formality' of Ada. By adopting Ada, the programming language best suited for safety-critical, high-reliability applications, MBDA is supporting its own stated priority to "deliver the highest product reliability while developing innovative customized solutions."
  • Press Releases

    AdaCore Implements Ada on Intel Itanium 2-based HP Integrity Servers

    NEW YORK, NY, USA - AdaCore announced today the availability of its GNAT Pro Ada development environment on Intel® Itanium® 2-based HP Integrity servers running either the HP-UX or Linux operating systems. With GNAT Pro, Ada users can take full advantage of the performance, security, and flexibility offered by the HP servers. And Ada users with applications running on the AlphaServer and PA-RISC platforms can look forward to a smooth transition to HP-UX 11i and Linux on HP's Integrity servers.
  • Press Releases

    New GNAT Pro Toolsuite for ERC32

    PARIS, FRANCE - GNAT Pro for ERC32, a flexible cross-compilation environment supporting the Ravenscar tasking profile on top of a bare ERC32 computer, is now available. It is designed for mission-critical real-time space applications, including those that have to meet safety standards.
  • Press Releases

    AdaCore Implements New Ada Standard

    NEW YORK, NY - AdaCore today announced the first implementation of the upcoming new version of the Ada programming language. Known as Ada 2005 and anticipated for official international standardization under ISO next year, the new definition advances the state-of-the-art in programming language design while meeting the goal of compatibility with earlier versions of Ada.
  • Press Releases

    Mission Control System Team Member

    NEW YORK, NY, USA - AdaCore joins Boeing, Smiths Aerospace, and Wind River Systems in celebrating the maiden flight of Boeing’s advanced aerial refueling tanker, the Italian Air Force KC-767A, which took place on May 21, 2005. AdaCore serves as a key member of Smiths Aerospace’s development team for the tanker’s mission control system (MCS), which manages the aircraft’s unique flight guidance, navigation, and communications capabilities. The Italian Air Force was Boeing’s first KC-767 customer, ordering four of the world's newest and most advanced tankers.
  • Press Releases

    Dynamic Plug-in Loading with Ada - Paper Available

    PARIS, FRANCE - Maintenance of high-availability systems (e.g., servers) requires the ability to modify, enhance, or correct parts of the application without needing to shut down and re-link the entire system. This is relatively straightforward in an interpreted or virtual-machine based language such as Java, in which new code is loaded upon demand. In a language with static executable images this capability can be realized though dynamically loaded / linked libraries ("DLLs"). However, in practice this causes problems, because the protocol for invoking subprograms in a DLL is very low-level and sacrifices type safety.
  • Press Releases

    AdaCore Revs Up IDE

    Powerful, Simple-to-use GNAT Programming Studio Streamlines Software Development, Supports Wide Range of Operating Systems
  • Press Releases

    AdaCore Shines Spotlight on Ada for Broad Range of Leading-Edge Applications

    NEW YORK, NY, USA - AdaCore today introduced Ada Answers, a web portal aimed at providing managers and software developers with a comprehensive knowledge base about Ada, the programming language most often used to implement high-integrity, safety-critical and real-time systems.
  • Press Releases

    AdaCore & CodeSourcery Join Forces to Create Ada and C++ Development System

    AdaCore (New York) and CodeSourcery (Granite Bay, CA) have partnered to create the G++/GNAT Pro Joint Edition, the first open-source development environment for native and embedded applications that use both Ada and C++ programming languages. The G++/GNAT Pro Joint Edition is based on a combination of several GNU-based, open-source technologies – AdaCore’s GNAT Pro Ada toolsuite, and CodeSourcery's G++ Pro compiler. The result is a full-featured, modern IDE that includes source editors, configuration management facilities, source-level debuggers, source navigation and queries, and user extensibility. It is ideal for complex, mission-critical systems that must efficiently unite software developed in Ada and C++.
  • Press Releases

    GNAT Pro Compiler and Debugger Available for Mac OS

    NEW YORK, NY, USA - As part of the 5.03 release, AdaCore is pleased to announce the availability of the GNAT Pro toolsuite for the Mac OS X and Mac OS X Server platforms, Apple's award-winning UNIX-based operating system.
  • Press Releases

    GNAT Pro is a Winner in Datamation 'Product of the Year' Contest

    NEW YORK, NY, USA - Ada is no longer the best-kept secret in software development. Users are taking notice, and GNAT Pro was nominated for 'Product of the year' in the category 'Enterprise Linux Application'. Despite competing against products that are much better known and that have a much broader user base, GNAT Pro finished in a tie for 3rd place with Novell's SUSE Linux Enterprise Server 9.
  • Press Releases

    GNAT Pro Nominated 'Product of the Year' in Jupiter Media's Datamation Awards

    NEW YORK, NY, USA - AdaCore is proud to announce that its flagship product, GNAT Pro has been nominated for 'Product of the Year' in Jupiter Media's Datamation Awards. Our distinguished co-nominees are Mozilla's Firefox, VMWare's Workstation and Novell's SUSE Linux Enterprise Server. The Datamation Product of the Year 2005 Awards recognize Datamation readers' choices for achievement and innovation in enterprise software and hardware products.
  • Press Releases

    AdaCore to Present Several Papers at Ada Europe 2005

    PARIS, FRANCE - AdaCore is pleased to announce that it will be presenting the following papers and tutorials at Ada Europe 2005 which takes place this June in York, England:
  • Press Releases

    AdaCore Partners with Praxis Critical Systems on a Joint Academic Initiative

    NEW YORK, NY USA / PARIS, FRANCE - As part of the Ada Academic Program, AdaCore is pleased to announce a joint initiative with Praxis Critical Systems Ltd. AdaCore's GNAT Academic Program (GAP) will be linked to the Praxis Academic Support Programme - a fully supported professional SPARK toolset offered free-of-charge to university faculty members for teaching and/or research. SPARK is a high-integrity subset of the Ada programming language. The SPARK Examiner checks conformance of code against the rules of SPARK, performs flow analysis and can generate Verification-Conditions for full formal proof of SPARK source code. In conjunction with the SPADE Simplifier and the SPADE Proof Checker, Praxis provides a suite of tools capable of aiding the development, testing and verification of high integrity systems written in SPARKAda.
  • Press Releases

    Ada Core Technologies to Build an Ada95 Compiler and Development Environment for SGI ALTIX

    NEW YORK, NY, USA - Ada Core Technologies, the leader in Ada 95 solutions and providers of the GNAT Pro Ada development tool suite, today announced it is expanding its support agreement with Silicon Graphics (NYSE: SGI). The new agreement will include the development and support of the GNAT Pro product line on the SGI® Altix® family of superclusters and servers, which feature the 64-bit Intel® Itanium® 2 processor and the Linux® operating system.
  • Press Releases

    Wind River Teams with AdaCore on Safety-Critical ARINC 653 for use in Boeing 7E7

    Wind River and Ada Core Technologies software will be used in Boeing's new 7E7 Dreamliner, powering the Common Core System, which is the electronics and software backbone of the airplane.Ada Core Technologies' development tool, GNAT Pro High Integrity Edition for AE653, will be integrated into Wind River Platform for Safety Critical ARINC 653Wind River Systems, Inc., the global leader in device software optimization (DSO), and Ada Core Technologies, the global leader in Ada 95 solutions and providers of the GNAT Pro Ada development tool suite, today announced that AdaCore's GNAT Pro High-Integrity Edition for AE653 has been selected as the Ada environment for the Wind River Platform for Safety Critical ARINC 653, to be used in the Boeing 7E7 Dreamliner Program.
  • Press Releases

    Ada Core Technologies announces local distributor in Australia

    NEW YORK, NY, USA - Ada Core Technologies, leader in Ada 95 technology and providers of the GNAT Pro Ada development toolsuite, today announced that it has entered into a distribution agreement with Dedicated Systems Australia Pty Ltd, a distributor providing Australia and New Zealand with world-class software and hardware solutions in the real-time and embedded computing markets with a special focus on defense and communications. This collaboration will not only provide our Pacific Rim customers with a fully integrated Ada solution for native and cross systems, but also bring them the high level of customer attention that is the hallmark of Ada Core Technologies.
  • Press Releases

    Ada Resource Association Adds ACT Europe to Global Membership

    SALT LAKE CITY, UT, USA - Software Technology Conference (STC, Salt Lake City) - The Ada Resource Association (ARA) is pleased to announce the addition of its newest member, ACT Europe, which develops components of the GNAT Pro technology for the Ada programming language.
  • Press Releases

    Ada Core Technologies and ACT Europe launches the GNAT Programming System IDE

    PARIS, FRANCE - The first Free Software Ada-aware integrated development environment (IDE)
  • Press Releases

    Announcing availability of the new customer web server, GNAT Tracker

    PARIS, FRANCE - Our unrivalled support just got better.
  • Press Releases

    SGI and Ada Core Technologies Team up to Support Ada 95 Users

    Ada Core Technologies Will Provide Direct Support to SGI IRIX OS-Based Customers for the Ada 95 Compiler
  • Press Releases

    Wind River, Smiths Aerospace and Ada Core Technologies Deliver Tornado for Safety-Critical Systems

    Boeing Using New Safety-Critical Platform on C130AMP and 767 Tanker Transport Programs
  • Press Releases

    Ada Core Technologies awarded HP contract for porting Ada Toolset to HP OpenVMS for Itanium

    GNAT Pro Ada 95 Toolset and HP's OpenVMS Provide Solid Foundation for Software Development
  • Press Releases

    Wind River To Distribute Ada Core Technologies' GNAT Pro Ada 95 Technology

    Ada Core Technologies Joins Wind River Direct, Extending Wind River's Product Portfolio-Simplifying Military and Aerospace Development
  • Articles

    Making robots with Ada, Part 2 - Driving the motors

  • Events

    STC 2017

    AdaCore will be attending this event.

    Ben Brosgol will be giving the talk "Guidance for Introducing Formal Methods into a Software Verification Infrastructure"

  • Events

    Embedded Systems Conference 2017

    AdaCore will be exhibiting at this event.

  • Events

    ESE Kongress 2017

    AdaCore will be exhibiting at this event. 
    Ingo Houben will present the paper "Formal korrekten C-Code durch Benutzung von SPARK erstellen".

  • Events

    RSSRail 2017

    AdaCore will be attending this event. Eric Perlade will present "AdaCore Technologies for EN50128:2011".

  • Events

    IET System Safety and Cybersecurity Conference 2017

    AdaCore will be exhibiting at this event.

  • Events

    ARM TechCon 2017

    AdaCore will be exhibiting at this event.

  • Events

    HIS 2017

    AdaCore is a major sponsor and will be exhibiting at this event.

  • Events

    AdaCore Tech Day 2017 Paris

    AdaCore is holding its annual Tech Day meeting in Paris.

  • Events

    Webinar: Developing embedded systems in Ada - a C programmer's guide to safe, secure software

    This webinar will show how the Ada language can help you design, implement and verify embedded software that will be reliable, safe and secure, while still meeting its performance requirements.

  • Events

    STC 2017

    AdaCore will be attending this event. 
    Ben Brosgol will be giving the talk "Guidance for Introducing Formal Methods into a Software Verification Infrastructure"

  • Events

    ESA/SW Product Assurance and Engineering Workshop 2017

    AdaCore will be attending this event and Jose Ruiz will present 'Trusted Automatic Code Generator'.

  • Events

    GNU Tools Cauldron 2017

    AdaCore will be sponsoring this event.

  • Events

    KAIST Workshop on Real Verification

    AdaCore will be attending this event. 
    Johannes Kanig will be giving a presentation on SPARK at 16:45.

  • Events

    VSTTE 2017

    Verified Software: Theories, Tools, and Experiments conference.
    Clement Fumex will be presenting the paper Automating the Verification of Floating-Point Programs.

  • Events

    TU-Automotive 2017

    AdaCore will be exhibiting at this event.

  • Events

    Frama-C and SPARK Day

    Formal Analysis and Proof for Programs in C and Ada.

    AdaCore will be attending and co-leading this workshop.

  • Events

    Automotive - Safety and Security 2017

    AdaCore will be sponsoring this event and exhibiting.

  • Events

    MEDSec 2017

    AdaCore will be attending this event.

  • Events

    NFM 2017

    AdaCore will be attending this event - Claire Dross will be presenting the paper "Auto-Active Proof of Red-Black Trees in SPARK".

  • Events

    HCSS 2017 (High Confidence Software and Systems Conference)

    AdaCore will be attending this event. Yannick Moy will present "Levels of Software Assurance" and the notion of SPARK levels (Stone, Bronze, Silver, Gold), how they were used in Thales experiments and how they map to Altran UK practice, and the underlying techniques that support these (proof of floats using a combination of techniques, ghost code for functional properties).

  • Events

    Embedded Systems Conference

    AdaCore will be attending this event.

  • Events

    DPRTE 2017

    AdaCore will be attending this event.

  • Events

    Dedicated Systems Tech Days 2017

    AdaCore will be exhibiting at this event.

    Pat Bernadi will be hosting the seminar "Software that matters - the pursuit of safety, security and serenity".

  • Events

    Certification Together

    AdaCore is a Platinum sponsor and will be exhibiting at this event.

  • Events

    Dedicated Systems Tech Days 2017

    AdaCore will be exhibiting at this event.

    Pat Bernadi will be hosting the seminar "Software that matters - the pursuit of safety, security and serenity".

  • Events

    OSM Unmanned Aircraft and Safety Certification Webcast

    AdaCore will be sponsoring this webinar.

    This webcast will take place 2pm Eastern Time.

  • Events

    Embedded World 2017

    AdaCore will be exhibiting at this event. Hall 4/4-149.

  • Events

    Safety-Critical Systems Symposium 2017

    AdaCore will be exhibiting at this event.

  • Events

    FOSDEM 2017

    AdaCore is attending this event and will be giving two talks:

    "Prove with SPARK: No Math, Just Code" from Yannick Moy and "64 bit Bare Metal Programming on RPI-3" from Tristan Gingold.

  • Events

    VMCAI 2017

    AdaCore will be sponsoring and attending this event.

  • Events

    Flight Software Workshop

    AdaCore will be exhibiting at this event.

  • Events

    Formal Methods Webinar: Building High-Assurance Software without Breaking the Bank

    2:00pm ET/11:00AM PT

    In this webcast, SPARK experts Yannick Moy and Rod Chapman present the current status of the SPARK solution and explain how it can be successfully adopted in your current software development processes.

  • Events

    Embedded Systems Conference

    AdaCore is exhbiting at this event.

  • Events

    RTC Military Systems Conference 2016

    AdaCore will be exhibiting at this event.

  • Events

    ESE Kongress

    AdaCore is exhibiting at this event.

  • Events

    High Integrity Software 2016

    AdaCore is a major sponsor of this event and is exhibiting.

  • Events

    ARM TechCon

    AdaCore is exhibiting at this event.

    Pat Rogers will be holding a Theater Session on Wednesday 26th October.

  • Events

    HILT Workshop 2016

    AdaCore is a major sponsor of this event.

  • Events

    DASC 2016

    AdaCore will be exhibiting at this event.

  • Events

    2016 FAA Streamlining Assurance Processes Workshop

    Cyrille Comar, co-founder of AdaCore, will be participating on behalf of the company to the panel discussion on DAL modulation on Wednesday 13th September.

  • Events

    GNU Cauldron

    AdaCore is a major sponsor and will be exhibiting at this event.

  • Events

    SEFM 2016

    AdaCore is presenting the paper "Counterexamples from Proof Failures in SPARK."

  • Events

    RSSRail

    AdaCore is a major sponsor and is exhibiting at the event.

    Yannick Moy is presenting the paper "Abstract Software Specifications and Authentic Proof of Refinement."

  • Events

    Ada-Europe

    AdaCore is a major sponsor of this event and is exhibiting.

    Pat Rogers will give a tutorial on Embedded ARM Programming with Ada 2012 on June 13.

  • Events

    TU Automotive 2016

    AdaCore is exhibiting in booth C173.

  • Events

    NFM 2016

    Claude Marche and Clément Fumex are presenting the paper "Specification and Proof of High-Level Functional Properties of Bit-Level Programs."

  • Events

    Managing AdaCore software quality with Squoring and AdaCore tools

    Quentin OChem from AdaCore and Flavien Huynh from Squoring Technologies will present the webinar "Managing AdaCore software quality with Squoring and AdaCore tools" Click through to register.

  • Events

    High Confidence Software and Systems Conference

    S. Tucker Taft will present TQL-1 Qualification of a Model-Based Code Generator on Wednesday May 11 between 15:30 and 16:00.

  • Events

    Dedicated Systems Tech Day 2016

    AdaCore will be exhibiting at the event.

    Eric Perlade will give the seminar - Building reliable software: Programming languages do count.

    Eric Perlade will also give a workshop - Ada 2012 on embedded real-time systems.

  • Events

    Embedded World 2016

    AdaCore will be exhibiting at this event in booth 4-149, hall 4.

  • Events

    Safety-Critical Systems Symposium

    AdaCore is a major sponsor of this event and will be exhibiting.

  • Events

    ERTS

    AdaCore is a Gold Sponsor of this event and will be exhibiting in booth 50.

  • Events

    IEEE High Assurance Systems Engineering Symposium

    Tucker Taft will present the paper "High-Integrity Multitasking in SPARK: Static Detection of Data Races and Locking Cycles", co-authored by Altran's Florian Schanda and AdaCore's Yannick Moy.

  • Events

    Ada Lovelace Symposium

    AdaCore is sponsoring this event.

  • Events

    Business Aviation Convention and Exhibition

    AdaCore will be exhibiting at this event at Booth C13749.

  • Events

    ARM TechCon

    AdaCore will be exhibiting at this event at Booth 217.

    AdaCore's Pat Rogers will be presenting a talk on The Practical Development of Safe, Secure, and Reliable Embedded Software on November 11 from 14:45 - 15:15 in the Expo Theater.

  • Events

    High Integrity Software 2015

    AdaCore is a major sponsor of this event and will be exhibiting.

  • Events

    Spacecraft Flight Software (FSW-15)

    AdaCore is a sponsor at this event and Tucker Taft will be presenting the paper "Re-Engineering Abstract Interpretation for Precise, Scalable Whole-Program Verification".

  • Events

    Embedded Systems Conference Silicon Valley

    AdaCore will be exhibiting at this event at Booth 55.

  • Events

    International Conference on Model Transformation 2015

    Elie Richa will present the paper "Translating ATL Model Transformations to Algebraic Graph Transformations".

  • Events

    UK Space Conference 2015

    AdaCore will be exhibiting at this event.

  • Events

    Ada-Europe

    AdaCore will be exhibiting at this event. Pat Rogers will be giving a tutorial on Real-time/Embedded Programming with Ada 2012. Ben Brosgol and Emmanuel Briot will present a tutorial called "When Ada Meets Python: Extensibility through Scripting".

  • Events

    Test et Méthodes Formelles

    AdaCore will be attending this event.

  • Events

    Project P Workshop

    AdaCore will be exhibiting at this event. Matteo Bordin will be presenting “Overview of other generators of the project” and “Model Verification and Code Generation with QGen”.

  • Events

    Embedded Systems Conference Boston

    AdaCore will be exhibiting at this event at Booth 17.

  • Events

    AUVSI Show

    AdaCore will be exhibiting at this event at booth 2951.

  • Events

    Addressing security in safety-critical and mission-critical unmanned aircraft systems

    This webcast will discuss how to select the optimal development tools and processes to ensure the safety, security, and reliability of real-time unmanned aircraft, onboard software, and ground control solutions.

  • Events

    Scandinavian Conference System and Software Safety

    Quentin Ochem will present the paper "Reducing the cost of Defensive Code – the Ada 2012 approach".

  • Events

    Certification Together

    AdaCore is exhibiting at this event.

  • Events

    Embedded World

    AdaCore is exhibiting at this event in Hall 4 Stand 149.

  • Events

    SSS 2015

    AdaCore is exhibiting at this event.

  • Events

    Proof In Use Kickoff

    Kickoff event launching the Proof In Use research project.

  • Events

    RTECC Santa Clara

    AdaCore is an exhibitor at this event.

  • Events

    Car electronics Japan show

    AdaCore will be an exhibitor in this event (represented by ITAccess).

  • Events

    2014 Workshop on Spacecraft Flight Software

    Tucker Taft gave a talk on "A Complete High-Integrity Software Development Stack".

  • Events

    Arm Tech Symposia

    AdaCore exhibited at this event.

  • Events

    China Wind Forum

    AdaCore is gold sponsor of this event and will be demoing contract-based programming in the context of the Wind River Workbench environment. Michael Friess will be giving the talk "Bring safety on board with contract-based programming and formal verification”.

  • Events

    ISSRE 2014

    Quentin Ochem will present the paper "Programming with Contracts - Ada 2012 Tool-Supported Industrial Insights". AdaCore is also a major sponsor of this event.

  • Events

    High Integrity Software

    AdaCore is a major sponsor of this event and will be exhibiting.

  • Events

    ACM SIGAda’s HILT 2014

    AdaCore is a Platinum sponsor/exhibitor, and Tucker Taft is Program Chair.

  • Events

    IET System Safety and Cybersecurity

    AdaCore is a sponsor of this event and will be exhibiting.

  • Events

    Webinar - Enabling Safety Certification in ARM-based Systems

    Processor technology from ARM has become a game changer for multiple industries, delivering high-performance-per-watt processing and high levels of integration to enable system on a chip (SoC) capability in a low-power device. This combination has been ideal for small form factor systems in avionics, automotive, and medical applications. Now embedded designers in these markets are looking at ways to take advantage of ARM technology to enable safety certification via standards such as FAA DO-178C for avionics systems and MISRA for automotive systems. This webcast of industry experts will look at how ARM-based solutions can not only reduce power but easily utilize the integrated peripherals in safety certification solutions across different industries.

    To register, please click here.

  • Events

    MODELS 2014

    Elie Richa will present the paper "Supporting the Testing of Model Transformation Chains with Precondition Construction in Algebraic Graph Transformation".

  • Events

    GNAT Industrial User Day

    AdaCore will hold it's annual User Group meeting in Paris, France on September 25 this year. Click through for more info or to register.

  • Events

    TAP 2014

    Yannick Moy and Johannes Kanig are presenting a paper - Explicit Assumptions - A Prenup for Marrying Static and Dynamic Program Verification.

  • Events

    Ada Europe

    AdaCore is a major sponsor of this event.

  • Events

    Australian System Safety Conference 2014

    AdaCore are major sponsors and exhibitors at this event.

  • Events

    AUVSI

    AdaCore is exhibiting at this event.

  • Events

    High Confidence Software and Systems Conference

    Yannick Moy is giving a talk - SPARK 2014: Formal Program Verification For All.

  • Events

    Civil Avionics International Forum

    AdaCore is a sponsor of this event.

  • Events

    Tool Qualification Symposium

    AdaCore is a sponsor of this event.

    Matteo Bordin is giving a talk - The Economics of Tool Qualification.

  • Events

    Embedded Masterclass

    AdaCore is a Silver Sponsor of this event - booth 422.

    Robert Dewar is giving a talk - Using freely-licensed software in critical-embedded systems.

  • Events

    EE Live

    AdaCore is exhibiting at this event - booth 719.

  • Events

    IEEE Software Technology Conference

    Ben Brosgol is giving a talk at this event.

  • Events

    Le traitement de l’innovation dans la certification ferroviaire

    AdaCore is exhibiting at this event.

  • Events

    Embedded World

    AdaCore is exhibiting at this event - Hall 5/5-348.

  • Events

    Safety-critical Systems Symposium

    AdaCore is a major sponsor of the event.

  • Events

    RTECC

    AdaCore is exhibiting at this event.

  • Events

    RTECC

    AdaCore is exhibiting at this event.

  • Events

    ACM SIGAda’s HILT 2013

    AdaCore is a Platinum Sponsor of this event.

  • Events

    IET International System Safety Conference

    AdaCore is a sponsor of this event and will be exhibiting.

  • Events

    GNAT Industrial User Day

    AdaCore will hold it's annual User Group meeting in Paris, France on September 25 this year. For more details and to register, please visit:
    http://www.adacore.com/gnatpro-day

  • Events

    SAE Aerotech 2013

    Tucker Taft will be giving a talk entitled, "Integrating Test and Proof in the Next Generation Verifiable SPARK Language, Using Contract-Based Programming Features and SMT Solvers."

  • Events

    Embedded Konferenz Stuttgart

    AdaCore is a sponsor of this event and will be exhibiting.

  • Events

    ARM-based Embedded System Design

    Quentin Ochem will be giving the talk "Ada for ARM".

  • Events

    Ada Europe 2013

    AdaCore is a major sponsor of this event and will be exhibiting. Thomas Quinot will present the paper, "Lady Ada Mediates Peace Treaty in Endianness War".

  • Events

    Certification Together 2013

    AdaCore is Platinum sponsor of this event. Johannes Kanig will give a talk entitled, "Integrating Formal Program Verification with Testing".

  • Events

    DASIA 2013

    Johannes Kanig and David Lesens (Astrium Space Transportation) are presenting, "Formal Validation of Aerospace Software".

  • Events

    Ada Conference UK 2013

    AdaCore is lead sponsor of this event. Tucker Taft is presenting an Ada 2012 tutorial and Robert Dewar will give a talk entitled "I'm as Mad as Hell, and I'm Not Going To Take This Anymore!".

  • Events

    Design West

    AdaCore is exhibiting at this conference (booth #719). Tucker Taft will present the paper, "Systems Programming in the Distributed, Multicore World with Go, Rust, and ParaSail" and Ben Brosgol will give a talk entitled "Object-Oriented Programming for High-Integrity Systems: Pitfalls and How to Avoid Them".

  • Events

    1st Tool Qualification Symposium

    Matteo Bordin and Robertus Vingerhoeds will present the paper "Open Qualification Material Approach in the Project P".

  • Events

    STC 2013

    Ben Brosgol will deliver  a talk entitled "Object-Oriented Programming for High-Integrity Software: Local Type Consistency Verification without Tears".

  • Events

    RTECC

    AdaCore is exhibiting at this event.

  • Events

    Embedded World

    AdaCore is exhibiting at this event- hall 4, booth # 544f . Johannes Kanig will give a talk entitled "Integrating Formal Program Verification with Testing"

  • Events

    Safety-Critical Systems Symposium 2013

    AdaCore is a major sponsor of this event and will be exhibiting. Robert Dewar will present the paper "Testing and Proving: Strange bedfellows?"

  • Events

    FOSDEM 2013

    AdaCore will give the following presentations:

    - "Simplifying the use of Formal Methods" and "Ada on Android" Jose Ruiz.

    - "Compile- Time Dimensionality Checking" Valentine Reboul.

  • Events

    RTECC

    AdaCore is exhibiting at this event.

  • Events

    Paris Space Week 2012

    AdaCore is exhibiting at this event.

  • Events

    High Integrity Language Technology (HILT 2012)

    Sponsored by ACM SIGAda

    AdaCore is a Platinum level sponsor, and AdaCore authors will be presenting a variety of papers and tutorials.

    • Johannes Känig. Leading-Edge Ada Verification Technologies: Combining Testing and Verification with GNATTest and GNATProve – The Hi-Lite Project (Tutorial)
    • Tucker Taft. MulticoreProgramming using Divide-and-Conquer and Work Stealing (Tutorial)
    • Claire Dross, Johannes Känig, and Ed Schonberg. Hi-Lite: The Convergence of Compiler Technology and Program Verification
    • Vincent Pucci and Ed Schonberg. The Implementation of Compile-Time Dimensionality Checking
    • Hristian Kirtchev. A Robust Implementation of Ada’s Finalizable Controlled Types
    • Geert Bosch. Synchronization Cannot Be a Library
  • Events

    Automotive 2012

    AdaCore is a sponsor and Johannes Kanig will present the paper "Integration von Formaler Verifikation und Test"

  • Events

    SAE Aerospace Electronics and Avionics Systems Conference

    Greg Gicca is presenting a paper “Meeting Top Safety and Security Requirements while Reducing Cost, Size, Weight, and Energy: Achieving High Assurance through a Verifiable Language on a
    MILS Architecture”.

  • Events

    GNAT Industrial User Day

    AdaCore will hold it's annual User Group meeting in Paris, France on September 25 this year. For more details and to register, please visit:

    http://www.adacore.com/gnatpro-day

  • Events

    ESC / Design East

    AdaCore is exhibiting at this event. Tucker Taft will present the paper "Ada 2012- New Language Technology for High-Integrity Software".

  • Events

    FM 2012

    The Hi-Lite team will present the paper "Maximal and compositional pattern-based loop invariants" and give the talk "The future of formal software verification in avionics".

  • Events

    Embedded Conference Stuttgart

    AdaCore is a sponsor and exhibitor at this event.

  • Events

    Embedded Masterclass 2012

    AdaCore is an exhibitor at this event and Quentin Ochem will present the paper "Higher abstraction in low-level development: the Ada 2012 answer".

  • Events

    B-Method – AdaCore micro-seminar

    AdaCore Internal Seminar -

    Jean Louis Dufour (Sagem DS, http://fr.linkedin.com/pub/jean-louis-dufour/18/7b7/228), will come to the AdaCore Paris offices to give a 101 introduction to the B-Method.

    AdaCore, from time to time, organizes seminars in the Paris offices. If you are interested in a particular talk, please send email to events@adacore.com.

  • Events

    Ada Europe 2012

    AdaCore will give the following presentation “Source Code as the Key Artifact in Requirement-Based Development: the case of Ada 2012″ – Cyrille Comar, José Ruiz and Yannick Moy, and the following tutorials:

    “DO-178C: The Next Avionics Software Safety Standard” – Ben Brosgol
    “Experimenting with ParaSail – Parallel Specification and Implementation Language” – Tucker Taft

    Our partners, Altran Praxis, will give the following tutorials “The Benefits of Using SPARK for High-assurance Software” and “The Use of Proof and Generics in SPARK” – Trevor Jennings and Robin Messer

  • Events

    The NSA Twelfth Annual HCSS Conference (2012)

    Rod Chapman will be presenting the poster paper "A Formal and Fast Reference Implementation of the Skein Hash Algorithm".

  • Events

    MIT CSAIL - Multicore Software Seminar Series

    S. Tucker Taft will be giving a 90 minute lecture "ParaSail: A simplified approach to safe parallel programming" at MIT as part of the Computer Science and Artificial Intelligence Laboratory's (CSAIL) Multicore Software Seminar Series.

  • Events

    SAE 2012 World Congress & Exhibition

    Stuart Matthews will be presenting the paper "Building Security In: The SPARK Approach to Software Development".

  • Events

    SSTC 2012

    Ben Brosgol is delivering a presentation, “Object-Oriented Programming for High-Integrity Systems: Pitfalls and How to Avoid Them”.

  • Events

    ESC Silicon Valley

    AdaCore is exhibiting at this event.

  • Events

    Embedded World 2012

    Michael Friess will be giving a talk in the FLOSS and Safety Track. AdaCore will also be exhibiting at this event.

  • Events

    Safety-critical Systems Symposium ‘12

    AdaCore is a major sponsor of this event.

  • Events

    FOSDEM 2012

    Robert Dewar will give a keynote talk “Free Software: A viable model for Commercial Success“. Jose Ruiz will give talks on “Multicore programming support in Ada” and “Programming LEGO MINDSTORMS robots in Ada”.

  • Events

    ERTS 2012

    AdaCore is a platinum sponsor of this event and will give the following talks “Integrating Formal Program Verification with Testing” (Cyrille Comar, Johannes Kanig and Yannick Moy), “Compilation of Heterogeneous Models: Motivations and Challenges” (Matteo Bordin, Tonu Naks, Andres Toom and Marc Pantel), and “Formalization and Comparison of MCDC and Object Branch Coverage Criteria” (Cyrille Comar, Jerome Guitton, Olivier Hainque, Thomas Quinot).

  • Events

    HiPEAC 2012

    AdaCore is a sponsor of this event.

  • Events

    RTECC - Real Time Embedded Computing Conferences

    • Ottawa, ON Canada (Tuesday September 13,2011)
    • Montreal, QC Canada (Wednesday September 15, 2011)
    • Seattle, WA (Thursday October 13,2011)
    • Phoenix, AZ (Thursday December 8, 2011)
  • Events

    Medelec Conference 2011

    Quentin Ochem will be giving the talk "Lessons to be learned from ultra-paranoid industries (or why software matters)". AdaCore is also exhibiting at this event.

  • Events

    SIGAda 2011

    AdaCore is an exhibitor at this event.

  • Events

    SCADE User Group Conference

    AdaCore is a sponsor of this event and will be exhibiting.

  • Events

    Embedded Conference Scandinavia

    Michael Friess will give a talk "Efficient Safety Critical Systems Development: Is FLOSS the only answer?" in the Open Source Session (15:40-16:20 on Oct 4).

  • Events

    ESC Boston 2011

    AdaCore is an exhibitor at this event.

  • Events

    Open World Forum

    AdaCore is a silver sponsor of this event. Jamie Ayre will present the Open-DO project.

  • Events

    15th International Real-Time Ada Workshop

    Jose F. Ruiz will be presenting the paper "Going real-time with Ada 2012 and GNAT".

  • Events

    Boogie 2011 Workshop (co-located with CADE-23)

    Boogie 2011 is the first international workshop on intermediate verification languages. Johannes Kanig will present the paper "Why Hi-Lite Ada?".

  • Events

    Development of reliable software systems

    This is an Ada Deutschland workshop. AdaCore is a sponsor and will exhibit. Johannes Kanig will present the talk "Hi-Lite - Verification by Contract".

  • Events

    Test & Proof 2011

    Claire Dross will present the paper "Correct Code Containing Containers".

  • Events

    Ada Connection

    AdaCore is a major sponsor of this event and will be presenting the following paper "Design and Implementation of a Ravenscar Extension for Multiprocessors" by Jose F. Ruiz and Fabien Chouteau.

    And the following tutorials:

    • "Distributed Programming Techniques in Ada" by Thomas Quinot.
    • "Hard Real-Time and Embedded Systems Programming with Ada" by Patrick Rogers

    Roderick Chapman from our partners Altran Praxis will be giving the following tutorial: "SPARK. The Libre Language and Toolset for High-Assurance Software"

  • Events

    Embedded Konferenz

    AdaCore is an exhibitor at this event. Michael Friess will give the presentation "FLOSS for the development of safety-related systems".

  • Events

    SSTC 2011

    AdaCore will be presenting the following paper by Ben Brosgol and Cyrille Comar - An Update on DO-178C: A New Standard for Software Safety Certification.

  • Events

    ESC Silicon Valley 2011

    AdaCore will be presenting the following paper by Greg Gicca and Ben Brosgol - Strategies for Developing Safe and Secure Embedded Systems.

    Roderick Chapman from our partners Altran Praxis will be presenting the following paper - Static Code Verification: Issues, Problems and Current Technologies.

  • Events

    Wind River Partner event

    "From Simulation to Deployment: Every Step Fulfilled with Wind River Solutions". AdaCore is an exhibitor at this event.

  • Events

    Embedded World

    Michael Friess will be giving the talk "Efficient Safety Critical Systems Development - Is FLOSS the only answer?" in the FLOSS for Safety related Systems Class (Thursday, March 3, 11:15-12:00). AdaCore is also exhibiting at the event - Booth F224, Hall 11.

  • Events

    Software Considerations for Avionics and Critical Systems

    This event is jointly organized with the IEEE Control, Aerospace and Electronic Systems Chapter and The University of Adelaide. Robert Dewar will give a talk discussing the topics below:

    - Best practices for software design in critical systems. 
    - The suitability of both existing and emerging standards. 
    - An overview of tools and methodologies available to address the certification of such systems, including those available in the open source world. 
    - Legal considerations and security.
    - A glimpse into the future.

  • Events

    Safety-critical Systems Symposium ‘11

    AdaCore is a major sponsor of this event. Robert Dewar will present the paper "A Pragmatic View of Formal Methods: the Hi-Lite project"

  • Events

    TOPCASED DAYS

    Franco Gasperoni will be a panelist in the round table discussion "An Open Source strategy for industrial development" on February 2, 17:00-18:30.

  • Pages

    Thank You

    Your request has been successfully submitted.
  • Customer Stories

    Astute-Class Submarine Periscope

    This case study describes Thales UK’s state-of-the-art non-hull-penetrating optronic mast for the United Kingdom Royal Navy’s new Astute-class submarines, which provides greater flexibility in boat design and improved surface visibility while reducing the probability of detection. The optronic mast is powered by AdaCore partner, Wind River’s VxWorks mission-critical real-time operating system (RTOS) submarine.
  • Customer Stories

    Pilot Ejection Seat

    The U.S. Navy is using a new ejection seat sequencer that will catapult a pilot and co- pilot (and the seats) out of a damaged F-18, F-14, or T-45 aircraft within 0.2 seconds from the time the ejection handle is pulled.
  • Pages

    Language Support

    AdaCore supports the Ada, SPARK, C, and C++ languages with a complete range of compilers, IDEs, debuggers, and static and dynamic analysis tools.
  • Pages

    Platforms

    Our products are available on a wide range of processors (x86, PPC, ARM, LEON), boards, OSes (both native and cross), RTOSes, and Bare Metal targets.
  • Pages

    Certification Materials

    AdaCore provides qualified tools and runtimes to smooth certification in DO-178B/C, EN 50128, ECSS-E-ST-40C / ECSS-Q-ST-80C, IEC 61508 and ISO 26262.
  • Books

    Source Code to Object Code Traceability Study

    Approval of aviation software to the guidance of DO-178B/ED-12B and DO-178C/ED-12C [DO178C] requires an applicant to assess the correspondence between source code and object code in certain circumstances. In particular, for Level A software, source code to object code traceability must be established (see paragraph 6.4.4.2b of DO-178C/ED-12C). When the compiler generates object code that is not directly traceable to the source code, additional verifications must be performed. As proposed in the position paper CAST-12 [CAST12], an acceptable approach is to identify that untraceable compiler-generated object code and verify it. This document analyzes the code generated by the GNAT Pro High-Integrity Edition 7.4.3 compiler hosted on Windows and targeting PowerPC e500v2 ELF identified by the string (issued when using the --version switch): powerpc-eabispe-gcc (GCC) 4.9.4 20151030 (for GNAT Pro 7.4.3 20161026)

    Release 1.0 Document ID: TEC.PB04-045, Issue 1.0 December 16, 2016

  • Books

    Implementation Guidance for the Adoption of SPARK

    This booklet presents a set of guidelines for adopting formal verification in existing projects, codebases and processes. These guidelines are based on five levels of software assurance, in increasing order of benefits and costs. The guidelines were developed jointly by AdaCore and Thales for the adoption of the SPARK language technology at Thales. They do not require a background in mathematical logic or any specialized expertise, and they allow an evolutionary approach to introducing formal methods into an enterprise.

    SPARK has a long and successful track record for high-assurance systems. This booklet shows how to exploit its benefits, and understand its costs, on the path to zero-defect software.

    Release 1.2

  • Books

    AdaCore Technologies for DO‑178C / ED‑12C

    The guidance in the DO-178C / ED-12C standard and its associated technology-specific supplements helps achieve confidence that airborne software meets its requirements. Certifying that a system complies with this guidance is a challenging task, especially for the verification activities, but appropriate usage of qualified tools and specialized run- time libraries can significantly simplify the effort. This document explains how a number of technologies offered by AdaCore – tools, libraries, and supplemental services – can help. It covers not only the “core” DO-178C / ED-12C standard but also the technology supplements: Model-Based Development and Verification (DO-331 / ED-218), Object-Oriented Technology and Related Techniques (DO-332 / ED-217), and Formal Methods (DO-333 / ED-216). The content is based on the authors’ many years of practical experience with the certification of airborne software, with the Ada and SPARK programming languages, and with the technologies addressed by the DO-178C / ED-12C supplements

    The authors gratefully acknowledge the assistance of Ben Brosgol (AdaCore) for his review of and contributions to the material presented in this document.

    Frédéric Pothon, ACG Solutions Montpellier, France March 2017

    Quentin Ochem, AdaCore New York, NY March 2017

  • Books

    Safe and Secure Software Updated for SPARK (Russian Translation)

    Джон Барнс При участии Бэн Брасгол.

    Безопасное и надежное программное обеспечение Ada 2012

    Адаптировано для SPARK 2014

  • Books

    AdaCore Technologies for CENELEC EN 50128:2011

    This document presents the usage of AdaCore’s technology in conjunction with the CENELEC EN 50128:2011 standard. It describes where the technology fits best and how it can best be used to meet various requirements of the standard.

    Written by Jean-Louis Boulanger and Quentin Ochem, for AdaCore

  • Books

    Safe and Secure Software - An Invitation to Ada 2012

    The aim of this booklet is to show how the study of Ada in general, and the features introduced by Ada 2005 and Ada 2012 in particular, can help anyone designing safe and secure software regardless of the programming language in which the software is eventually written. After all, successful implementers of safe and secure software write in the spirit of Ada in any language!

    Written by John Barnes with contributions by Ben Brosgol

  • Books

    Dissimilar tools: Use cases and impact on tool qualification level

    Frequently, the lack of existing qualifiable COTS tools raises the question whether two separately developed and thus dissimilar tools that satisfy the same operational requirements may be used instead of a single tool, either to avoid the need for qualifying that tool or to serve as an alternative method for tool qualification.

    This question may be answered in different ways by different certification authorities, since no guidance or guidelines are provided in the applicable standards, such as DO-178C/ED-12C. DO-330/ED-215 identifies the use of dissimilar tools as an example of “alternative method for tool qualification” but without definition of the actual impact of such approach. DO we have to understand that the use of non-qualified dissimilar tools replaces the need for qualification of a single tool? Is this applicable for all TQL?

    This paper presents several use cases based on the type of tools and certification credit, and examines the possible impact on the need for qualification and the applicable Tool Qualification Level of the use of dissimilar tools.

    Disclaimer: Discussion of this topic in the Forum for Aeronautical Software (FAS) (see http://www.rtca.org/content.asp?pl=33&sl=170&contentid=170) raised controversial questions and different opinions. Therefore, it was difficult to reach a consensus on an Information Paper. It was decided that this topic is beyond the scope of the FAS working group, and the proposal was withdrawn. This document reflects the author’s point of view, based on his background and experience. It should help readers to provide an acceptable rationale for a software life cycle using dissimilar tools in place of a single qualified tool.

    The author, Frédéric Pothon ACG Solutions, and several of the contributors and reviewers participated in the DO-178C/ED-12C working group and subcommittees.

    © Frédéric Pothon, 2015 This work is licensed under a Creative Commons Attribution-Non Commercial-ShareAlike 3.0 Unported License.

  • Books

    Ada for the C++ or Java Developer

    This document will present the Ada language using terminology and examples that are familiar to developers that understand the C++ or Java languages.

    Written by Quentin Ochem.

  • Books

    DO-330/ED-215 Benefits of the New Tool Qualification Document

    As part of the DO-178C/ED-12C revision effort, a new document Software Tools Qualification Considerations (DO-330/ED-215) was developed. Its goal is both to replace the software tool qualification guidance of DO-178B/ED-12B and also to enable and encourage the use of this “mature” guidance outside the airborne domain. Since it may be used independently, DO-330/ED-215 is not considered as a supplement to DO-178C/ED-12C; it is thus titled differently from the specialized technology supplements.

    The purpose of this document is to describe how DO-330/ED-215 impacts the current tool qualification approach of DO-178B/ED-12B and how it provides more relevant guidance for both tool users and tool providers.

    We first review the rationale for a Tool Qualification document. But before the application of DO-330/ED-215, a fundamental pre-condition is to establish for the project the tool qualification criteria and the Tool Qualification Levels (TQLs). As an example, we show how DO-178C/ED-12C determines the criteria and TQLs for the airborne domain. In this domain, the criteria are based on the possible impact of a tool error on the software life cycle processes.

    We then highlight the main impact of DO-330/ED-215 on current practice, and provide the relevant information to help the reader to apply this new guidance.

    Some supporting information is provided in an appendix of DO-330/ED-215. We describe one of the most important topics, addressing the possible certification credit when using a qualified AutoCode Generator (ACG).

    The author, Frédéric Pothon ACG Solutions, and several of the contributors and reviewers participated in the DO-178C/ED-12C working group and subcommittees.

    © Frédéric Pothon, 2012

  • Books

    DO-178C/ED-12C vs DO-178B/ED-12B: Changes and Improvements

    This document identifies all the changes in the new release DO-178C/ED-12C, explains their rationale, and highlights the impact of these changes on the various software processes. The author, Frédéric Pothon ACG Solutions, and several of the contributors and reviewers participated in the DO-178C/ED-12C working group and subcommittees.

    © Frédéric Pothon, 2012

  • Books

    GNAT and Ada 2005

    An introduction to the work being undertaken to implement the Ada 2005 features in the GNAT Pro technology

  • Papers

    SPARK 2014 User's Guide (Japanese)

    SPARK is a programming language and formal verification toolset for engineering high-reliability applications. In this document in Japanese, we introduce the fundamental concepts of the SPARK language, and the essential features of the SPARK toolset. This document forms the core part of the complete SPARK User's Guide in English.

    Translation to Japanese by Mr. Masao Ito, NIL

    SPARK 2014 User’s Guide
    リリース 18.0w
    AdaCore and Altran UK Ltd
    1 月 18, 2017

  • Papers

    A Comparison of SPARK with MISRA C and Frama-C

    Both SPARK and MISRA C are programming languages intended for high-assurance applications, i.e., systems where reliability is critical and safety and/or security requirements must be met. This document summarizes the two languages, compares them with respect to how they help satisfy high-assurance requirements, and compares the SPARK technology to several static analysis tools available for MISRA C with a focus on Frama-C.

    Written by Johannes Kanig, AdaCore

  • Papers

    Towards Testing Model Transformation Chains Using Precondition Construction in Algebraic Graph Trans

    Complex model-based tools such as code generators are typically designed as chains of model transformations taking as input a model of a software application and transforming it through several intermediate steps and representations.

    The complexity of intermediate models is such that testing is more conveniently done on the integrated chain, with test models expressed in the input language. To achieve a high test coverage, existing transformation analyses automatically generate constraints guiding the generation of test models. However, these so called test objectives are expressed on the complex intermediate models. We propose to back-propagate test objectives along the chain into constraints and test models in the input language, relying on precondition construction in the theory of Algebraic Graph Transformation. This paper focuses on a one-step back-propagation.

  • Papers

    SPARKSkein: A Formal and Fast Reference Implementation of Skein

    This paper describes SPARKSkein - a new reference implementation of the Skein cryptographic hash algorithm, written and verified using the SPARK language and toolset.

    The new implementation is readable, completely portable to a wide-variety of machines of differing word-sizes and endian-ness, and “formal” in that it is subject to a proof of type safety. This proof also identified a subtle bug in the original reference implementation which persists in the C version of the code. Performance testing has been carried out using three generations of the GCC compiler. With the latest compiler, the SPARK code offers identical performance to the existing C reference implementation. As a further result of this work, we have identified several opportunities to improve both the SPARK tools and GCC.

    The final publication is available at Springer

  • Papers

    Ada 2012 Rationale

    This document by John Barnes gives a view of the major enhancements to Ada being introduced in Ada 2012.

  • Papers

    Testing or Formal Verification: DO-178C Alternatives and Industrial Experience

    Testing or Formal Verification: DO-178C Alternatives and Industrial Experience looks at how to use formal verification instead of testing of software in civilian airplanes (for which DO-178C applies). It is based on the experience of Airbus and Dassault-Aviation in the application of formal verification with the Frama-C platform. In particular it describes:

    • What the avionics certification standard DO-178C asks in replacement for test coverage, which does not apply when one uses formal verification instead of testing.
    • How formal verification tools can help with these alternate objectives.
    • The solutions that Airbus and Dassault-Aviation have implemented to cover these objectives.

    This paper is copyrighted by IEEE, and reproduced here with their permission. You can also access it on the IEEE Software website.

  • Papers

    Thoughts on Ada

    Franco Gasperoni's "Thoughts on Ada and Language Technology in Our Times". The paper looks at the origins of Ada, its use in software development, and its key role in mission-­critical systems of the 21st century.

  • Papers

    High-Integrity Object-Oriented Programming in Ada

    To download the latest version of the paper, please click here:

    https://www.adacore.com/upload...

    This paper’s goal is to provide guidance on how to use Ada’s Object Oriented (OO) features for High-Integrity applications; i.e. high-reliability systems with requirements for safety and/or security which may need to demonstrate compliance with domain-specific certification standards.

    Brief Overview

    The paper was written by AdaCore experts with extensive experience in this area through their participation in industrial working groups such as EUROCAE’s WG-91, the DO-178C design committee, and ISO’s Ada Rapporteur Group that manages the Ada language standardization process. Another source of experience comes from the support of AdaCore customers, in domains such as aerospace and transportation, since the company’s inception in the mid 1990s. Many customers are using AdaCore tools during their certification process, and some have already completed the highest level of certification with Ada code while extensively using Object Oriented features.

    The Object Orientation Concepts chapter summarizes the principal concepts in order to establish the terminology and provide criteria for comparing languages’ approaches. The Object Orientation in Ada chapter introduces Ada’s model for Object Orientation. Readers familiar with Ada 95 can move quickly to the last sections of this chapter, which describe several new features that are being added to the latest revision of language, known as Ada 2012, and which are extremely relevant to safe Object-Oriented programming. The next three chapters – Vulnerabilities and Their Mitigation, Complexity Management, and Safety and Verification Considerations – describe known concerns related to using Object Oriented technology in a High-Integrity environment and discuss recommended solutions. The final chapter, Directions for GNAT Pro Users, starts with a user checklist summarizing the steps we suggest taking when starting out in this area, and then presents the relevant elements and tools of the GNAT Pro technology.

  • Papers

    Compilation of Heterogeneous Models: Motivations and Challenges

    The widespread use of model driven engineering in the development of software-intensive systems, including high- integrity embedded systems, gave rise to a “Tower of Babel” of modeling languages. System architects may use languages such as OMG SysML and MARTE, SAE AADL or EAST-ADL; control and command engineers tend to use graphical tools such as MathWorks Simulink/Stateflow or Esterel Technologies SCADE, or textual languages such as MathWorks Embedded Matlab; software engineers usually rely on OMG UML; and, of course, many in- house domain specific languages are equally used at any step of the development process. This heterogeneity of modeling formalisms raises several questions on the verification and code generation for systems described using heterogeneous models: How can we ensure consistency across multiple modeling views? How can we generate code, which is optimized with respect to multiple modeling views? How can we ensure model-level verification is consistent with the run-time behavior of the generated executable application?

    In this position paper we describe the motivations and challenges of analysis and code generation from heterogeneous models when intra-view consistency, optimization and safety are major concerns. We will then introduce Project P and Hi-MoCo - respectively FUI and Eurostars -funded collaborative projects tackling the challenges above. This work continues and extends, in a wider context, the work carried out by the Gene-Auto project. Hereby we will present the key elements of Project P and Hi-MoCo, in particular: (i) the philosophy for the identification of safe and minimal practical subsets of input modeling languages; (ii) the overall architecture of the toolsets, the supported analysis techniques and the target languages for code generation; and finally, (iii) the approach to cross-domain qualification for an open-source, community-driven toolset.

    http://www.adacore.com/uploads_gems/Project_P_Hi-MoCo.pdf

  • Papers

    Integrating Formal Program Verification with Testing

    Verification activities mandated for critical software are essential to achieve the required level of confidence expected in life-critical or business-critical software. They are becoming increasingly costly as, over time, they require the development and maintenance of a large body of functional and robustness tests on larger and more complex applications. Formal program verification offers a way to reduce these costs while providing stronger guarantees than testing. Addressing verification activities with formal verification is supported by upcoming standards such as do-178c for software development in avionics. In the Hi-Lite project, we pursue the integration of formal verification with testing for projects developed in C or Ada. In this paper, we discuss the conditions under which this integration is at least as strong as testing alone. We describe associated costs and benefits, using a simple banking database application as a case study.

  • Papers

    Formalization and Comparison of MCDC and Object Branch Coverage Criteria

    This paper presents formal results derived from the COUVERTURE project, whose goal was to develop tools to support structural coverage analysis of uninstrumented safety-critical software. After briefly introducing the project context and explaining the need for formal foundations, we focus on the relationships between machine branch coverage and the DO-178B Modified Condition/Decision Coverage (MCDC) criterion. A thorough understanding of those relationships is important, since it provides the foundation for knowing where efficient execution trace techniques can be used to demonstrate compliance with the MCDC criterion. We first present several conjectures that were tested using Alloy models, then provide a formally verified characterization of the situations when coverage of object control-flow edges implies MCDC compliance.

  • Papers

    The use of value numbers in static analysis.

    By Tucker Taft, Director of Language Research, AdaCore.
    CodePeer uses value numbers as part of its static analysis. This is one of the keys to its power and its flexibility. This is a short note that explains how value numbers work in the context of CodePeer, and what advantages they provide.

  • Papers

    Towards Certification of Object-Oriented Code with the GNAT Compiler

    This paper was originally published in volume 28 of the Ada User Journal in 2007.

    Abstract:
    Dynamic binding, the ability to link at runtime a method call with a subprogram that depends on the class of the object, is strongly discouraged by current standards for avionics airborne systems. This is partly due to dynamic dispatching, the technique commonly used by most OO compilers to implement dynamic binding. In this paper we present some enhancements to the GNAT technology that will help the avionic industry take advantage of the full benefits of the OO techniques with Ada without the inconveniences associated with dynamic dispatching.

  • Papers

    Couverture paper presented at ERTS² 2010

    At the recent ERTS² 2010 conference held in Toulouse, Thomas Quinot presented this paper entitled “Object and Source Coverage for Critical Applications with the Couverture Open Analysis Framework”. It presents the Couverture approach to object and structural coverage analysis for certified safety-critical applications, in particular in the context of DO-178.

  • Papers

    A principled approach to software engineering

    This paper examines the use of Java as a first programming language, in the light of well-established principles of software engineering, and the increasing concern with correctness, performance, and maintainability. We argue that Java is markedly inferior to Ada or C++ as a language for introductory Computer Science courses, and that its widespread use in the training of tomorrow’s software engineers is counterproductive.

    This paper examines the use of Java as a first programming language, in the light of well-established principles of software engineering, and the increasing concern with correctness, performance, and maintainability. We argue that Java is markedly inferior to Ada or C++ as a language for introductory Computer Science courses, and that its widespread use in the training of tomorrow’s software engineers is counterproductive.

  • Papers

    Coverage and Free Software

    A recent paper by Franco Gasperoni describing how a Free Software toolset (Coverage) and virtualization technology (QEMU) can be used effectively to assure code coverage in the development of software applications. While an important target use of the coverage toolset is safety-critical embedded applications, the design of the tools allows its use in non safety-critical projects.

    http://www.adacore.com/uploads/technical-papers/coverage_and_free_software.pdf

  • Papers

    Abstract Interface Types in GNAT: Conversions, Discriminants, and C++

    Ada 2005 Abstract Interface Types provide a limited and practical form of multiple inheritance of specifications. In this paper we cover the following aspects of their implementation in the GNAT compiler: interface type conversions, the layout of variable sized tagged objects with interface progenitors, and the use of the GNAT compiler for interfacing with C++ classes with compatible inheritance trees.

  • Papers

    Multi-Language Programming: The Challenge and Promise of Class-Level Interfacing

    Many computer applications today involve modules written in different programming languages, and integrating these modules together is a delicate operation. This first requires the availability of formalisms to let programmers denote “foreign” entities like objects and subprograms as well as their associated types. Then, proper translation of what programmers express often calls for significant implementation effort, possibly down to the specification of very precise ABIs (Application Binary Interfaces). Meta-language based approaches a la CORBA/IDL are very powerful in this respect but typically aim at addressing distributed systems issues as well, hence entail support infrastructure that not every target environment needs or can afford. When component distribution over a network is not a concern, straight interfacing at the binary object level is much more efficient. It however relies on numerous low level details and in practice is most often only possible for a limited set of constructs.

    Binary level interaction between foreign modules is traditionally achieved through subprogram calls, exchanging simple data types and relying on the target environment’s core ABI. Object Oriented features in modern languages motivate specific additional capabilities in this area, such as class-level interfacing to allow reuse and extension of class hierarchies across languages with minimal constraints. This paper describes work we have conducted in this context, allowing direct binding of Ada extensible tagged types with C++ classes. Motivated by extensions to the Ada typing system made as part of the very recent language standard revision, this work leverages the GCC multi-language infrastructure and implementation of the Itanium C++ ABI. We will first survey the issues and mechanisms related to basic inter-language operations, then present the interfacing challenges posed by modern object oriented features after a brief overview of the Ada, C++, and Java object models. We will continue with a description of our work on Ada/C++ class-level interfacing facilities, illustrated by an example.

  • Papers

    Exposing Uninitialized Variables: Strengthening and Extending Run-Time Checks in Ada

    Since its inception, a main ob jective of the Ada language has been to assist in the development of large and robust applications. In addition to that, the language also provides support for building safety- critical applications, e.g. by facilitating validation and verification of such programs. The latest revision of the language has brought some addi- tional improvements in the safety area, such as the Normalize Scalars pragma, which ensures an automatic initialization of the non-explicitly initialized scalars. This paper presents Initialize Scalars, an enrichment of the Normalize Scalars concept, and an extended mode to verify at run-time the validity of scalars, both designed for easy use in existing large applications. Their implementation in GNAT Pro (the GNU Ada 95 compiler) is discussed. The practical results obtained on a large Air Traffic Flow Management application are presented.

  • Papers

    The Implementation of Ada 2005 Interface Types in the GNAT Compiler

    One of the most important ob ject-oriented features of the new revision of the Ada Programming Language is the introduction of Abstract Interfacesto provide a form of multiple inheritance. Ada 2005 Abstract Interface Types are based on Java interfaces, and as such support inheritance of operation specifications, rather than the general complexity of inheritance of implementations as in full multiple inheritance. Real-time uses of Ada demand efficient and bounded worst-case execution time for interface calls. In addition, modern systems require mixed-language programming. This paper summarizes part of the work done by the GNAT Development Team to provide an efficient implementation of this language feature and simplifies interfacing with C++.

  • Papers

    Safety, Security, and Object-Oriented Programming

    When safety-critical software malfunctions people lives are in danger. When security-critical software is cracked national security or economic activity may be at risk. As more and more software embraces object-oriented programming (OOP) safety-critical and security-critical projects feel compelled to use object-orientation. But what are the guarantees of OOP in terms of safety and security? Are the design goals of OOP aligned with those of safe and secure software (S3) systems? In the following sections we look at key OOP aspects and analyze some of the hazards they introduce with respect to S3 and outline a possible way of addressing these vulnerabilities. Specifically, after a quick overview of OOP in section 2, section 3 deals with inheritance and shows some of its hazards in terms of S3 along with possible remedies. Section 4 focuses on dynamic binding and suggests a safer and more secure implementation than what is conventionally done. Finally, section 5 looks at testing programs with dynamic binding.

  • Papers

    Certification & Object Orientation: The New Ada Answer

    The object model of Ada 2005 is well-suited for applications that have to meet certification at various levels. We review the use of Ada in the context of certification, and show that the object-oriented facilities of the current language standard, properly restricted to avoid dynamic dispatching, can already be used without problems under current DO-178B guidelines. We then examine the complications to certification that are presented by dynamic dispatching in a single inheritance model, and show implementation-specific ways of addressing these complications. Finally, we discuss the problems introduced by the use of multiple inheritance. We conclude by showing how, regardless of the extent to which object-oriented idioms are used, Ada provides a safe and efficient vehicle to create certifiable systems.

  • Papers

    Safe and Secure Software - An invitation to Ada 2005

    Below you will find John Barnes booklet that shows how the study of Ada in general and Ada 2005 in particular, is helpful to everyone designing safe and secure software regardless of the programming language in which the software is eventually written.

  • Papers

    Ada 2005 for Mission-Critical Systems

    For the development of mission-critical software, the choice of programming language makes a significant difference in meeting the requirements of exacting safety standards and, ultimately, high-reliability applications.

    Ada has a long history of success in the safety-critical domain, with features such as strong typing, that help early error detection, and well-defined semantics. The language has evolved based on user experience, and the forthcoming Ada 2005 standard includes a number of enhancements that will be of particular benefit to developers of high-integrity real-time systems. Relevant features include support for run-time profiles, flexible task-dispatching policies, execution-time clocks and timers, and a unification of concurrency and object-oriented features.

  • Papers

    Ada 2005 Rationale

    A series of papers by John Barnes highlighting the rationale for Ada 2005


  • Papers

    Safety-Critical Design Techniques for Secure and Reliable Systems

    The traditional definition of a safety-critical program is one in which human life depends on the correct operation of the program. If there is a bug in such a program, then death or serious injury can result. Typical examples are signaling systems on trains, avionics control systems, medical instrumentation, and space applications. Since the focus is on human safety, we apply requirements to such programs that essentially require that they be error free.

  • Papers

    Ada 2005 – Ready to Roll

    Ada is at this stage a fairly old language, having been first standardized over twenty years ago. In that time, it has been extensively used, particularly in large critical programs where, to quote Ed Harris in a well known movie, “failure is not an option”. That’s not at all surprising because Ada from its inception has been designed with this kind of reliability in mind.

  • Papers

    Ada 2005 for High-Integrity Systems

    The forthcoming Ada 2005 standard has been enhanced to better address the needs of the real-time and high-integrity communities. This new standard introduces new restriction identifiers that can be used to define highly efficient, simple, and predictable run-time profiles. Among others, this language revi- sion will standardize the Ravenscar profile, new scheduling policies, and will include execution time clocks and timers. Flexible object-oriented features are also supported without compromising performance or safety.

  • Papers

    The Implementation of Ada 2005 Synchronized Interfaces in the GNAT Compiler

    One of the most important ob ject-oriented features of the new revision of the Ada Programming Language is the introduction of Abstract Interfaces to provide a form of multiple inheritance. Ada 2005 Abstract Interface Types are akin to Java interfaces, and as such support inheritance of specification rather than inheritance of implementation. Ada 2005 interfaces apply as well to tasks and protected types, and provide a classification mechanism for concurrent program- ming that goes considerably beyond the capabilities of Java. This paper summarizes the implementation in the GNAT compiler of the various kinds of interfaces that relate to concurrent programming in Ada 2005. The implementation is efficient, and involves mostly modifications to the com- piler front-end, with virtually minimal impact on run-time structures, beyond those that are in place to support regular interfaces. However, the implementation of interface operations as triggers in selective waits and asynchronous transfers of control proved to be surprisingly delicate and requires additional predefined primitive operations.

  • Papers

    Mission-Critical On-Board Software Using the Ada 95 Ravenscar Profile

    This paper describes how GNAT Pro for ERC32 and the Ravenscar profile are suitable for designing and implementing complex on-board software using high-level tasking facilities.The static and simple tasking model defined by the Ravenscar profile allows for a streamlined implementation of the run-time system directly on top of bare machines. The reduced size and complexity of the run time, together with its configurability, makes it suitable for mission-critical space applications in which certification or reduced footprint is needed. Software reliability and predictability is also increased by excluding non-deterministic and non analysable tasking features. Product validation has been achieved by means of a comprehensive test suite intended to check compliance with the Ravenscar profile and Ada standards, and correct be- haviour of specialised features and supplemental tools. with the goal of achieving 100% statement coverage.

  • Papers

    The ESA Ravenscar Benchmark

    This article presents ERB, the ESA Ravenscar Benchmark. ERB aims at providing a synthetic benchmark comparing the efficiency of various Ada Ravenscar implementations and the RTEMS C implementation featuring the native threading model. ERB is original compared to existing Ada benchmarks, such as the ACES or the PIWG, not only because it is the first Ada Ravenscar benchmark, but also because it provides at the same time measurement of exe- cution times and estimate of the memory footprint of the Ada runtime and stack size requirements. ERB intends to become the standard benchmark for embedded Ada Ravenscar applications. To facilitate this, the European Space AgencAdaCore plan to release it under the GNU GPL to interested third parties.

  • Papers

    Compile-time stack requirements analysis with GCC

    Stack overflows are a major threat to many computer applications and run-time recovery techniques are not always available or appropriate. In such situations, it is of utmost value to prevent overflows from occurring in the first place, which requires evaluating the worst case stack space requirements of an application prior to operational execution time. More generally, as run-time stack areas need memory resources, information on the stack allocation patterns in software components is always of interest. We believe that specialized compiler outputs can be of great value in a stack usage analysis framework and have developed GCC extensions for this purpose. In this paper, we first expand on the motivations for this work, then describe what it consists of so far, future directions envisioned, and experiments results.

  • Papers

    GNAT Pro for On-Board Mission-Critical Space Applications

    This paper describes the design and implementation of GNAT Pro for ERC32, a flexible cross-development environment supporting the Ravenscar tasking model on top of bare ERC32 computers. The static and simple tasking model defined by the Ravenscar profile allows for a streamlined implementation of the run-time system directly on top of bare machines. The reduced size and complexity of the run time, together with its configurability, makes it suitable for mission-critical space applications in which certification or reduced footprint is needed. Software reliability and predictability is also increased by excluding non-deterministic and non analysable tasking features. Product validation has been achieved by means of a comprehensive test suite intended to check com- pliance with the Ravenscar profile and Ada standards, and correct behaviour of specialised features and supplemental tools. Code coverage analysis is also part of the validation campaign, with the goal of achieving 100% statement coverage.

  • Papers

    Dynamic Plug-in Loading with Ada

    Maintenance of high-availability systems (e.g., servers) requires the ability to modify, enhance, or correct parts of the application without having to stop and re-link the entire system. This capability is relatively straight-forward with interpreted languages or virtual-machine based languages such as Java, in which new code is loaded upon demand. In languages typically implemented with static executable images this capability can be offered though dynamically loaded/linked libraries (“DLLs”). However, in practice it is impractical to make full use of this capability because the protocol for invoking subprograms in a DLL is very low-level and unsafe. In the case of Ada, global coherency requirements and elaboration ordering constraints add an additional degree of complexity over less strict/safe languages. Object-oriented programming makes this approach practical by using dynamic dispatching to invoke dynamically loaded functions with a more robust, high-level protocol. In an OO paradigm, a “plug-in” contains new classes that enrich the class set of the original application. Calls to subprograms in the shared library (plug-in) are done implicitly through dynamic dispatching which is much simpler, transparent to the programmer, type-safe, and more robust. This application note shows how a statically-typed, statically-built, object-oriented language such as Ada can make full use of the notion of dynamic plug-ins á la Java without relying on a comparatively inefficient virtual machine. We build an extensible application and illustrate adding new functionality at run-time, without first stopping execution, using plug-ins. We use GNAT Pro to build the plug-ins and main program on a Windows system. Tailoring to run on Linux or similar operating systems would be straight-forward. Some new features of Ada 2005 are also used in the implementation. Section two describes the structure of the demonstration application and how plug-ins are discovered and loaded. Section three then shows the commands used to build and run the main program and the plug-ins. Section four provides closing remarks.

  • Papers

    The Application of Compile-Time Reflection to Software Fault Tolerance using Ada 95

    Transparent system support for software fault tolerance reduces performance in general and precludes application-specific optimizations in particular. In contrast, explicit support – especially at the language level – allows application-specific tailoring. However, current techniques that extend languages to support software fault tolerance lead to interwoven code addressing functional and non-functional requirements. Reflection promises both significant separation of concerns and a malleability allowing the user to customize the language toward the optimum point in a language design space. To explore this potential we compare common software fault tolerance scenarios implemented in both standard and reflective Ada. Specifically, in addition to backward error recovery and recovery blocks, we explore the application of reflection to atomic actions and conversations. We then compare the implementations in terms of expressive power, portability, and performance.

  • Papers

    Ada 2005 Abstract Interfaces in GNAT

    One of the salient object-orientated issues of Ada 2005 are the Abstract Interfaces.Although the concept is not new (it is based on Java interfaces), being Ada a language for reliable and real-time applications its implementation must be efficient and have a bounded worst-case execution time. This paper summarizes parts of the work done by the GNAT Development Team to have an efficient implementation of this language feature.

  • Papers

    A Comparison of the Mutual Exclusion Features in Ada and the Real-Time Specification for Java

    A concurrent program generally comprises a collection of threads that interact cooperatively, either directly or through shared data objects. In the latter case the sharing needs to be implemented by some mechanism that ensures mutually exclusive access, or possibly “concurrent read / exclusive write”. Ada and the Real-Time Specification for Java have taken different approaches to mutual exclusion. This paper analyzes and compares them with respect to programming style (clarity, encapsulation, avoidance of errors such as deadlock), priority inversion management, expressibility/generality, and efficiency. It also looks at interactions with exceptions and asynchronous transfer of control.

  • Papers

    Vector Processing in Ada

    To handle signal processing algorithms such as the Fast Fourrier Transform (FFT) or the Discrete Cosine Transform (DCT) system designers have traditionally resorted to specialized hardware with built- in vector-processing capabilities.With the advent of the Altivec vector extensions for the general-purpose PowerPC processor, developers have the ability to write efficient signal processing code in C and C++. Using Altivec-enabled PowerPCs as an example, this paper explains what can and should be done to write not only efficient, but also clean and reliable vector processing code in Ada.

  • Papers

    Multilanguage Programming on the JVM: The Ada 95 Benefits

    The latest trend in our industry, “pervasive computing”, predicts the proliferation of numerous, often invisible, computing devices embedded in consumer appliances con- nected to the ubiquitous Internet. Secure, reliable applications combined with simplicity of use will make or break a company’s reputation in this market.

    The Java “write once, run anywhere” paradigm, introduced by Sun in the mid- 90s, is embodied in a widely available computing platform targeting pervasive devices. Although the Java Virtual Machine was designed to support the semantics of the Java programming language, it can also be used as a target for other languages.

    The Ada 95 programming language is a good match for the Java platform from the standpoint of its portability, security, reliability, and rich feature set. In this article we explain the features that have made Ada the language of choice for software-critical applications and how these features complement the Java programming language while increasing the overall reliability and flexibility of the Java platform.

  • Papers

    Exposing Memory Corruption and Finding Leaks: Advanced Mechanisms in Ada

    This article discusses the tools that Ada offers to deal with dynamic memory problems. The article shows how the storage pools mechanism of Ada 95 can be extended to enpower developers when tracking memory leaks and memory corruption in their code. This Ada extension rests on the notion of “checked pools”, i.e. storage pools with an additional Dereference operation. The paper describes how a particular instance of the checked pool, called the “debug pool”, is implemented in the GNAT technology. Performance measurements for the use of debug pools are provided in the context of the Air Traffic Flow Management application at Eurocontrol.

  • Papers

    A Comparison of the Asynchronous Transfer of Control Features in Ada and the Real-Time Specification

    Asynchronous Transfer of Control (“ATC”) is a transfer of control within a thread, triggered not by the thread itself but rather from some external source such as another thread or an interrupt handler. ATC is useful for several purposes; e.g. expressing common idioms such as timeouts and thread termination, and reducing the latency for responses to events. However, ATC presents significant issues semantically, methodologically, and implementationally. This paper describes the approaches to ATC taken by Ada and the Real-Time Specification for Java, and compares them with respect to safety, programming style / expressive power, and implementability / latency / efficiency.

  • Papers

    Real-Time Convergence of Ada and Java

    Two independent recent efforts have defined extensions to the Java platform that intend to satisfy real-time requirements. This paper summarizes the major features of these efforts, compares them to each other and to Ada 95’s Real-Time Annex, and argues that their convergence with Ada95 may serve to complement rather than compete with Ada in the real-time domain.

  • Papers

    High-Integrity Systems Development for Integrated Modular Avionics using VxWorks and GNAT

    This paper presents recent trends in avionics systems development from bespoke systems through to COTS and emerging Integrated Modular Avionics architectures. The advances in Ada and RTOS technologies are explained and the impact of requirements for RTCA/DO-178B and EUROCAE/ED-12B certification and achievements are presented in the context of the GNAT and VxWorks technologies.

  • Papers

    Quality Control in a Multi-Platform Multi-Product Software Company

    AdaCore is an international company who produce and support the GNAT Professional family of Ada language tools: software suites comprising compilers, debuggers, and other components.

    The company has been in business since 1994 and currently markets its products on platforms such as Windows, UNIX / Linux, and on embedded systems such as Tornado/VxWorks and LynxOS. With one or two major releases of each product annually, the company’s livelihood depends on the quality of the software and its support. In many ways AdaCore faces the same issues as other growing software organizations, and this article is intended as a “case study” showing how a combination of automated tools and human management can help meet the QA challenge.

  • Papers

    The GNAT Implementation of Controlled Types

    This paper discusses the implementation model for supporting Ada 95 controlled types in the GNAT compiler. After reviewing the semantics of controlled types, we outline the associated implementation problems and describe their solution in GNAT. The design addresses the management of controlled operations on various entities, including dynamically allocated objects, transient objects (function results and aggregates), and composite objects containing controlled components. The interaction of the controlled type features with exceptions is also covered. Finally, we discuss alternative implementation approaches and possible enhancements to the current model.

  • Papers

    GtkAda: Design and Implementation of a High Level Binding in Ada

    The purpose of this paper is to describe the design and implementation choices that were made during the development of an Ada binding to the popular Gtk+ graphical toolkit.

  • Papers

    A Comparison of the Concurrency and Real-Time Features of Ada 95 and Java

    Both Ada and Java support concurrent pro- gramming, but through quite different approaches.Ada has built-in tasking features with concurrency semantics, independent of the language’s OOP model, whereas Java’s thread support relies on OOP and is based on special execution properties of methods in several predefined classes. Ada achieves mutual exclusion through protected objects with encapsulated components; Java uses the classical “monitor” construct with “synchronized” methods/blocks. Ada models condition-based synchronization and communication through suspension objects, protected entries, and rendezvous; Java provides the low-level “wait” / “notification” methods. Both languages offer timing control; Ada additionally provides user-specifiable scheduling policies.

    Compared to Java, Ada’s concurrency model is less susceptible to deadlock and race conditions. Neither language is intrinsically superior in run-time performance. In some areas Ada’s semantics entail less run-time overhead; in other areas Java may have the advantage.

    Ada offers direct support for real-time programming through a combination of facilities in the core language and the Systems Programming and Real-Time Systems Annexes. Java lacks some critical functionality, and its semantics for thread scheduling are not completely defined. Depending on dynamic allocation and garbage collection, Java raises issues of time and space predictability. Work is in progress on making Java more applicable to real-time systems; at present Ada is the more appropriate language

  • Papers

    A Comparison of the Object-Oriented Features of Ada 95 and Java

    Ada and Java offer comparable Object-Oriented Programming (“OOP”) support, but through quite different approaches in both their general philosophies and their specific features.

    Each language allows the programmer to define class inheritance hierarchies and to exploit encapsulation, polymorphism, and dynamic binding. Whereas OOP forms the foundation of Java’s semantic model, OOP in Ada is largely orthogonal to the rest of the language. In Java it is difficult to avoid using OOP; in Ada OOP is brought in only when explicitly indicated in the program. Java is a “pure” OO language in the style of Smalltalk, with implicit pointers and implementation- supplied garbage collection. Ada is a methodology-neutral OO language in the manner of C++ , with explicit pointers and, in general, programmer-controlled versus implementation-supplied storage reclamation. Java uses OOP to capture the functionality of generics (“templates”), exception handling, multi-threading and other facilities that are not necessarily related to object orientation. Ada supplies specific features for generics, exceptions, and tasking, independent of its OO model. Java tends to provide greater flexibility with dynamic data structures and a more traditional notation for OOP. Ada tends to offer more opportunities for optimization and run-time efficiency, and greater flexibility in the choice of programming styles.

  • Pages

    Inquiries

    Contact AdaCore for software pricing and evaluation requests, expert customer support, website and GNAT Tracker comments, and any general inquiries.
  • Pages

    Partners

    AdaCore has developed strategic alliances and partnerships allowing customers to benefit from an ever-increasing complementary range of tools and services.
  • Pages

    Our Customers

    AdaCore provides software development solutions that help assure quality and reduce costs to a prestigious list of market leaders around the world.
  • GAP Member Projects

    Verified Robot Control Software

    At the University of Bristol and at the Bristol Robotics Laboratory we want to trust our robots. We develop their control software in Ada/SPARK and verify it using the latest technology from AdaCore. Within the RIVERAS project (Robust Integrated Verification of Autonomous Systems) we aim to create systems that behave predictable even in the face of unpredicted events.
  • GAP Member Projects

    The Muen Separation Kernel

    Trustworthy by Design -- Correct by Construction Today, even vital infrastructures like power grids, classified government networks or company research sites tend to be connected to the Internet to take advantage of remote management and cloud services. Traditional approaches to securing these infrastructures rely on a strict isolation of critical systems from untrusted networks. In the presence of critical networked environments, other strategies are required to prevent unauthorized access which may be gained through the exploitation of errors in the complex software stacks that are used. One solution are component-based high-assurance platforms where untrusted software components are strictly isolated from security-critical functions on one single physical system.
  • GAP Member Projects

    Lunar CubeSat

    Vermont Technical College successfully launched a lunar cube satellite into orbit. The tiny satellite, measuring only 10 cm x 10 cm x 10 cm and weighing 1.1 kg, was launched into a 500 km earth orbit, where it will remain for about three years to test the systems that will be used for the eventual lunar mission. The CubeSat project is part of NASA’s ELaNa IV program (Educational Launch of Nano-satellites).
  • GAP Member Projects

    Trusted Key Manager for IKEv2

    IPsec relies on the correct operation of the Internet Key Exchange (IKE) protocol to meet its security goals. The implementation of IKE is a non-trivial task and results in a large and complex code base. This makes it hard to gain a high degree of confidence in the correct operation of the code.
  • GAP Member Projects

    SPARK in Formal Verification Research

    Prof. John Hatcliff and his team at Kansas State University’s Static Analysis and Transformation of Software (SAnToS) Laboratory have found the SPARK language technology to be an ideal research vehicle for exploring novel techniques in formal program verification. The SAnToS team has worked for over a decade on innovative tools that incorporate model checking, symbolic execution, data flow, and program dependence analyses. “We started out using Java”, said Prof. Hatcliff. “But Java is a large language with complex semantics, and it certainly wasn’t designed for, or often used in, safety-critical systems. It was hard for us to produce clean technical results and robust tools with Java, and to apply those tools to interesting safety-critical examples. SPARK has proved to be a much more appropriate base language.”
  • GAP Member Projects

    Peer-to-Peer Epi-Transport Protocol

    The DSP group at the University of Udine is developing PPETP (Peer-to-Peer Epi-Transport Protocol), a new streaming protocol based on a peer-to-peer approach that will allow to distribute efficiently live multimedia material to a large number of users.  Initially aimed to the specific application of multimedia streaming, the protocol evolved with time and now it can be considered a general-purpose overlay multicast protocol with many features (e.g., efficient use of bandwidth, NAT-traversal built-in procedures, countermeasures against security issues specific to peer-to-peer networks) that make it suitable for efficient multimedia streaming.
  • GAP Member Projects

    Undergraduate Ada Projects - Gliding in Space

    At The Australian National University, students from the 2011 class in Concurrent and Distributed Systems provide an example of the high performance code they developed in undergraduate courses. The aim of the demo is to recharge all vehicles in a variable size swarm at an uncontrollable, roaming fuelling globe in a fully distributed manner. Each vehicle runs its own processes and can only communicate with nearby vehicles. It is a great example showing that GNAT is robust enough to serve as a workhorse in large multi-platform undergraduate class where substantial amounts of code is involved.
  • GAP Member Projects

    Real-Time Software Development with GNAT for Mindstorms

  • GAP Member Projects

    Ironsides Secure DNS Server

    Dr. Martin C. Carlisle (former director of the Academy Center for Cyberspace Research at the USAF Academy, and now at Carnegie Mellon University) and Dr. Barry Fagin (US Air Force Academy) have developed a secure DNS server using Ada and the SPARK formal methods tool set. IRONSIDES is an authoritative DNS server that is provably invulnerable to many of the problems that plague other servers. It achieves this property through the use of formal methods in its design, in particular the language Ada and the SPARK formal methods tool set. Code validated in this way is provably exception-free, contains no data flow errors, and terminates only in the ways that its programmers explicitly say that it can. These are very desirable properties from a computer security perspective.
  • GAP Member Projects

    Real-Time control of a Model Railway System

    At Western Washington University, students are using Ada in senior capstone projects on real-time control of a model railway system. To assist in understanding the complexities of that system, WWU faculty member Martin Osborne has developed a simulator that runs virtual trains on a virtual layout identical to the physical layout in the lab, including all switches and sensors. Use of the simulator during problem analysis has helped students understand the factors to be considered in system specification. In later project stages, the simulator assists in design verification and in more extensive software testing than would be practical with the physical system.
  • GAP Member Projects

    Real-Time System Development in Ada using LEGO MINDSTORMS NXT

    Our purpose at the UPM is to provide a set of tools to fully develop a real-time application in Ada using as target the LEGO® Mindstorms® NXT robotics kit. These tools, working under Linux, provide real-time & embedded systems teachers with an alternative to conventional software models designed in classrooms and labs.
  • GAP Member Projects

    Battling Robots: European Robotics Cup

    The Telecom Robotics club at Telecom ParisTech (an engineering college in the French Grandes Écoles system) is using Ada and the GNAT technology for its projects.
  • GAP Member Projects

    ECHO: A Practical Approach to Formal Verification

    At the University of Virginia, Ada lies at the core of a comprehensive approach to creating software for safety-critical applications. Dr. John Knight and his student, Xiang Yin, have created a practical approach to formal verification called Echo. In Echo verification, a program written in SPARK Ada is verified to conform to its SPARK annotations using the SPARK tools.
  • GAP Member Projects

    Serafina Autonomous Mini Submersible

    At the Australian National University (ANU), Ada plays an integral part in teaching and research, at both the undergraduate and graduate levels. Dr. Uwe Zimmer has been using Ada, with the GNAT technology on Linux, Windows, Mac, and Embedded MPC5554, in two major courses: Concurrent and Distributed Systems, for Computer Science and Engineering students in their second year; and Real-Time and Embedded Systems, for Computer Science and Engineering students in their last year and for Masters students.
  • GAP Member Projects

    Arctic Sea Ice Buoy and CubeSat Projects

    Under the direction of Professors Carl Brandon and Peter Chapin, students at Vermont Technical College are using AdaCore’s GNAT development environment along with Praxis’ SPARK tools on two NASA-sponsored programs with large software components.
  • GAP Member Projects

    Dasher! – A Racing Robot in Ada

    Under the direction of Professor Lars Asplund, graduate students at Mälardalen University are designing, building and programming the Dasher robot in a project that is pushing the limits of robotics technology. The software is being developed with AdaCore’s GNAT toolset, furnished to the university under the GNAT Academic Program (GAP), on Wind River Systems’ VxWorks real-time operating system.
  • Ada Gems

    Introducing the AdaCore Blog

    We’re pleased to announce the launch of the AdaCore Blog providing an insight into the AdaCore Ecosystem.
  • Ada Gems

    Gem #161 : So long and thanks for all the memories!

    After seven years and 160 iterations, the Ada Gem of the Week series is coming to an end. At least in its current format, as it will be replaced by a blog that will still address technical subjects. But more about that later. For this last Gem we want to reflect on what has been a very successful and widely read series.
  • Ada Gems

    Gem #160 : Developing unit tests with GNATtest

    Let's get started...
  • Ada Gems

    Gem #159 : GPRinstall - Part 2

    Let's get started...
  • Ada Gems

    Gem #158: GPRinstall - Part 1

    Let's get started...
  • Ada Gems

    Gem #157: Gprbuild and Code Generation

    This series follows on from Gems 152 and 155, which we recommend reading first as an introduction.
  • Ada Gems

    Gem #156: Listing Control in GNAT

    Let's get started...
  • Ada Gems

    Gem #155: Enhancing the GPRBuild Database for a New Language

    Let's get started...
  • Ada Gems

    Gem #154: Multicore Maze Solving, Part 2

    Let’s get started...
  • Ada Gems

    Gem #153: Multicore Maze Solving, Part 1

    Let’s get started...
  • Ada Gems

    Gem #152 : Defining a New Language in a Project File

    Let's get started...
  • Ada Gems

    Gem #151 : Specifying Mathematical Properties of Programs

    Let's get started...
  • Ada Gems

    Gem #150: Out and Uninitialized

    Perhaps surprisingly, the Ada standard indicates cases where objects passed to out and in out parameters might not be updated when a procedure terminates due to an exception. Let's take an example:
  • Ada Gems

    Gem #149 : Asserting the truth, but (possibly) not the whole truth

    Let's get started...
  • Ada Gems

    Gem #148 : Su(per)btypes in Ada 2012 - Part 3

    In the previous two Gems, we saw how aspects Static_Predicate and Dynamic_Predicate can be used to state properties of objects that should be respected at all times. This third and final Gem in the series is concerned with an aspect called Type_Invariant.
  • Ada Gems

    Gem #147 : Su(per)btypes in Ada 2012 - Part 2

    Let's get started...
  • Ada Gems

    Gem #146 : Su(per)btypes in Ada 2012 - Part 1

    Let's get started...
  • Ada Gems

    Gem #145: Ada Quiz 3 - Statements

    Let's get started...
  • Ada Gems

    Gem #144: A Bit of Bytes: Characters and Encoding Schemes

    Let's get started...
  • Ada Gems

    Gem #143 : Return to the Sources

    Let's get started...
  • Ada Gems

    Gem #142 : Exception-ally

    The standard Ada run-time library provides the package Ada.Exceptions. This package provides a number of services to help analyze exceptions.
  • Ada Gems

    Gem #141 : Con-figure it out

    Let's get started...
  • Ada Gems

    Gem #140: Bridging the Endianness Gap

    Let's get started!
  • Ada Gems

    Gem #139 : Master the Command Line - Part 2

    High-level APIAs mentioned in Part 1, GNAT.Command_Line also provides a higher-level API, where most of the handling is fully automatic. Here is an example of its use, similar to the example discussed in Part 1:
  • Ada Gems

    Gem #138 : Master the Command Line - Part 1

    Applications can be configured in multiple ways. Among the most frequent are command-line options, configuration files, and graphical user interfaces. The GNAT technology provides various means to interface with those, respectively Ada.Command_Line and GNAT.Command_Line, GNATCOLL.Config, and GtkAda.
  • Ada Gems

    Gem #137: Ada Quiz 2 - An Heir and a Spare?

    Let's get started...
  • Ada Gems

    Gem #136: How tall is a kilogram?

    Let's get started...
  • Ada Gems

    Gem #135 : Erroneous Execution - Part 4

    Let's get started...
  • Ada Gems

    Gem #134 : Erroneous Execution - Part 3

    Let's get started...
  • Ada Gems

    Gem #133 : Erroneous Execution - Part 2

    Let's get started...
  • Ada Gems

    Gem #132 : Erroneous Execution - Part 1

    Let's get started...
  • Ada Gems

    Gem #131 : Type-Safe Database API - Part 3

    Let's get started...
  • Ada Gems

    Gem #130 : Type-Safe Database API - Part 2

    Let's get started...
  • Ada Gems

    Gem #129 : Type-Safe Database API - Part 1

    Let's get started...
  • Ada Gems

    Gem #128 : Iterators in Ada 2012 - Part 2

    Let's get started...
  • Ada Gems

    Gem #127: Iterators in Ada 2012 - Part 1

    Let's get started...
  • Ada Gems

    Gem #126 : Aggregate Library Projects

    Let's get started...
  • Ada Gems

    Gem #125: Detecting infinite recursion with GDB's Python API

    Let's get started...
  • Ada Gems

    Gem #124 : Scripting GPS for Static Analysis

    Let's get started...
  • Ada Gems

    Gem #123: Implicit Dereferencing in Ada 2012

    Let's get started...
  • Ada Gems

    Gem #122: Breakpoint Commands — Part 2

    Let’s get started…
  • Ada Gems

    Gem #121 Breakpoint Commands — Part 1

    Let's get started...
  • Ada Gems

    Gem #120 : GDB Scripting — Part 2

    Let's get started...
  • Ada Gems

    Gem #119 : GDB Scripting— Part 1

    Let's get started...
  • Ada Gems

    Gem #118: File-System Portability Issues and GNATCOLL.VFS

    Let's get started...
  • Ada Gems

    Gem #117: Design Pattern: Overridable Class Attributes in Ada 2012

    Let’s get started…
  • Ada Gems

    Gem #116: Ada and C++ Exceptions

  • Ada Gems

    Gem #115: Lego Mindstorms Ada Environment — Part 2

    Let’s get started…
  • Ada Gems

    Gem #114: Logging with GNATCOLL.Traces

    Let’s get started …
  • Ada Gems

    Gem #113: Visitor Pattern in Ada

    Let's get started...
  • Ada Gems

    Gem #112: Lego Mindstorms Ada Environment — Part 1

    Let’s get started...
  • Ada Gems

    Gem #111: The Distributed Systems Annex, Part 5 — Embedded Name Server

    Let's get started...
  • Ada Gems

    Gem #110: Ada Plug-ins and Shared Libraries — Part 2

    Let's get started... In the first part of this two-part series we saw that stand-alone shared libraries have the required properties to be used as dynamic plug-ins. In this Gem we explore how to load and unload code dynamically within an Ada application. In essence, the dynamically loaded code is compiled into a shared library, and when this shared library is modified it is reloaded automatically.
  • Ada Gems

    Gem #109: Ada Plug-ins and Shared Libraries — Part 1

    Let's get started...
  • Ada Gems

    Gem #108: Gprbuild and Configuration Files — Part 2

    Let's get started ...
  • Ada Gems

    Gem #107: Preventing Deallocation for Reference-counted Types

    In Gem #97, a reference-counting pointer was presented, where a Get function returns an access to the data. This could be dangerous, since the caller might want to free the data (which should remain under control of the reference type). In this Gem, we present a method to prevent the misuse of the result of Get.
  • Ada Gems

    Gem #106: Lady Ada Kisses Python — Part 2

    The first part of this Gem described why having a Python interface might provide an effective way to customize and extend your application. It also highlighted how the GNAT Components Collection takes care of a good part of the work. This Gem will now go into the technical details of how you can use GNATCOLL.Scripts in practice. The GNATCOLL documentation provides additional details, so please refer to it if you need more information (see GNATColl: GNAT Reusable Components).
  • Ada Gems

    Gem #105: Lady Ada Kisses Python — Part 1

    The GNAT Components Collection (GNATCOLL) has included, since the beginning, a collection of packages to easily interface your Ada applications with scripting languages. This is the layer used in the GPS IDE to provide extensibility via the GPS shell or Python. The use with the GPS shell is just a toy we initially used to bootstrap the process, and was kept for backward compatibility only. On the other hand, Python is an extensively used object-oriented language that comes with its own run-time library, and can be easily extended in C or Ada.
  • Ada Gems

    Gem #104: Gprbuild and Configuration Files — Part 1

    Let's get started ...
  • Ada Gems

    Gem #103: Code Archetypes for Real-Time Programming — Part 5

    Introduction
  • Ada Gems

    Gem #102: SOAP/WSDL client part

    Let's get started...
  • Ada Gems

    Gem #101: SOAP/WSDL server part

    Let's get started...
  • Ada Gems

    Gem #100: Reference Counting in Ada - Part 3: Weak References

    As we mentioned in the first two parts of this Gem series, GNATCOLL now includes a package that provides support for memory management using reference counting, including taking advantage of the efficient synchronized add-and-fetch intrinsic function on systems where it is available.
  • Ada Gems

    Gem #99: Reference Counting in Ada - Part 2: Task Safety

    In Part 1, we described a reference-counted type that automatically frees memory when the last reference to it disappears. But this type is not task safe: when we decrement the counter, it might happen that two tasks see it as 0, and thus both will try to free the data. Likewise, the increment of the counter in Adjust is not an atomic operation, so it is possible that we will be missing some references.
  • Ada Gems

    Gem #98: High Performance Multi-core Programming - Part 2

    Let’s get started…
  • Ada Gems

    Gem #97: Reference Counting in Ada - Part 1

    Memory management is typically a complex issue to address when creating an application, and even more so when creating a library to be reused by third-party applications. It is necessary to document which part of the code allocates memory and which part is supposed to free that memory. As we have seen in a previous Gem, a number of tools exist for detecting memory leaks (gnatmem, GNATCOLL.Memory or valgrind). But of course, it would be more convenient if the memory were automatically managed.
  • Ada Gems

    Gem #96: Code Archetypes for Real-Time Programming - Part 4

    Introduction
  • Ada Gems

    Gem #95: Dynamic Stack Analysis in GNAT

    Let's get started...Determining how much stack space should be allocated to tasks is a common memory-management problem. In the absence of tool support, often the only information that developers have is the output EXCEPTION_STACK_OVERFLOW when their program crashes. GNAT offers two basic ways for users to get information on a program's stack usage -- statically or dynamically. This Gem addresses how to obtain data on dynamic stack usage. Measurement of static stack usage will be covered in a later Gem.
  • Ada Gems

    Gem #94: Code Archetypes for Real-Time Programming - Part 3

    Introduction
  • Ada Gems

    Gem #93: High Performance Multi-core Programming - Part 1

    Let’s get started…
  • Ada Gems

    Gem #92: Code Archetypes for Real-Time Programming - Part 2

    Introduction
  • Ada Gems

    Gem #91: Smart Completion (Part 2 of 2)

    Let's get started...
  • Ada Gems

    Gem #90: The Distributed Systems Annex, Part 4 — DSA and C

    Let's get started...
  • Ada Gems

    Gem #89: Code Archetypes for Real-Time Programming - Part 1

    Introduction In this series of Ada Gems we propose a set of code archetypes for the development of real-time systems. The code archetypes comply with the restrictions of the Ravenscar Profile, a subset of the Ada language specifically suited for the development of high-integrity real-time systems. The Ravenscar Profile was devised to guarantee that programs written in accordance with it are amenable to static analysis in the time dimension. In fact, the profile excludes all Ada constructs that are exposed to nondeterministic or unbounded execution time. In the space dimension, the profile prohibits the use of constructs that implicitly perform dynamic memory allocation.
  • Ada Gems

    Gem #88: GPS - Smart Completion (Part 1 of 2)

    Let's get started...
  • Ada Gems

    Gem #87: The Distributed Systems Annex, Part 3 — Mailboxes

    Let's get started...
  • Ada Gems

    Gem #86: Ada Quiz 1 - Basic Types

    Let's get started...
  • Ada Gems

    Gem #85:The Distributed Systems Annex 2 — Distributed Objects

    Let's get started… In the previous DSA Gem, we showed how subprograms in a package can be made remotely callable using a pragma Remote_Call_Interface (RCI for short). Each RCI unit is present in only one partition of a distributed application, and any call to a subprogram in such a unit made from another partition is transparently handled by the distribution run-time library.
  • Ada Gems

    Gem #84: The Distributed Systems Annex 1 - Simple client/server

    Let's get started…Many aspects of software engineering require, or can benefit from, distributed technology:
  • Ada Gems

    Gem #83: Type-Based Security 2: Validating the Input

    Let's get started…Input validation consists of checking a set of properties on the input which guarantee it is well-formed. This usually involves excluding a set of ill-formed inputs (black-list) or matching the input against an exhaustive set of well-formed patterns (white-list).
  • Ada Gems

    Gem #82: Type-Based Security 1: Handling Tainted Data

    Let's get started…The notions of tainted data and trusted data usually refer to data coming from the user vs. data coming from the application. Tainting is viral, in that any result of a computation where one of the operands is tainted becomes tainted too.
  • Ada Gems

    Gem #81: GNAT Semaphores

    Let's get started…A number of semaphore definitions exist, although the general concept remains as introduced by Dijkstra in 1968. We assume the reader has some familiarity with semaphores and their semantics, and so we will not cover them here. Many books are available for those requiring additional information. See especially Principles of Concurrent and Distributed Programming by M. Ben-Ari.
  • Ada Gems

    Gem #80: Speedy Shift and Rotate in SPARK

    Let's get started…Introduction
  • Ada Gems

    Gem #79: Where did my memory go? (Part 3)

    Let's get started…Part III: External Tools
  • Ada Gems

    Gem #78: Where did my memory go? (Part 2)

    Let's get started…Unless your coding standard forbids any dynamic allocation, memory management is a constant concern during system development. You might want to limit the amount of memory that your application requires, or you might have memory leaks (allocation chunks that are never returned to the system). The latter is a critical concern for long-running applications.
  • Ada Gems

    Gem #77: Where did my memory go? (Part 1)

    Let's get started…Unless your coding standard forbids any dynamic allocation, memory management is a constant concern during system development. You might want to limit the amount of memory that your application requires, or you might have memory leaks (allocation chunks that are never returned to the system). The latter is a critical concern for long-running applications.
  • Ada Gems

    Gem #76: Tokeneer Discovery - Lesson 6

    Let's get started…Error message information leak occurs when secure data is leaked, through error messages, to unauthorised users, and is one of the top twenty-five most dangerous programming errors according to SANS Institute. The general problem is ensuring that information flow adheres to certain policies -- for example, certain data should never be written in an error message to a log file that may be accessible by unauthorised users.
  • Ada Gems

    Gem #75: Tokeneer Discovery - Lesson 5

    Let's get started…An overflow error occurs when the capacity of a device is exceeded. Overflow errors are a source of quality and security concerns. For instance, when an arithmetic overflow occurs, a calculated value does not fit in its specified size, and the calculation (and the program) just stops. Buffer overflow happens when a process stores data in a buffer outside of the memory that the programmer set aside for it. Buffer overflow errors are widely known to present a vulnerability to malicious hackers, who might exploit the error to sneak their own code onto a victim's disk, storing it outside of the intended buffer.
  • Ada Gems

    Gem #74: Tokeneer Discovery - Lesson 4

    Let's get started…In this Gem, we will see how the SPARK tools detect any differences between a program's intended behaviour, as specified in its contract, and its actual behaviour, as implemented in the code. Thus the SPARK tools can be used either to find defects in the contract, to find defects in the implementation, to find defects in both, or to show conformance between intended and actual behaviour.
  • Ada Gems

    Gem #73: Tokeneer Discovery - Lesson 3

    Let's get started…Input validation ensures that your program's input conforms to expectations - for example, to ensure that the input has the right type. But validation requirements can be much more complicated than that. Incorrect input validation can lead to security and safety problems since many applications live in a "hostile" environment and the input might be constructed by an attacker. "It's the number one killer of healthy software..." according to the CWE/SANS list of the top twenty-five most dangerous programming errors.
  • Ada Gems

    Gem #72: Tokeneer Discovery - Lesson 2

    Let's get started…Every statement should have a purpose. An ineffective statement has no effect on any output variable and therefore has no effect on the behaviour of the code. The presence of ineffective statements reduces the quality and the maintainabiliy of the code. The SPARK Toolset identifies all ineffective statements.
  • Ada Gems

    Gem #71: Tokeneer Discovery - Lesson 1

    Let's get started…Note: This series of Gems makes references to SPARK and the Tokeneer project, which you can find out more about by visiting http://www.adacore.com/home/products/sparkpro/tokeneer/. See also the SPARK tutorial at http://www.adacore.com/home/products/sparkpro/tokeneer/discovery/.
  • Ada Gems

    Gem #70: The Scope Locks Idiom

    Let's get started…Like the classical “monitor” concept on which they are based, protected types provide mutually exclusive access to internal variables. Clients can only access these variables indirectly, by means of a procedural interface. This interface is very robust because mutually exclusive access is provided automatically: users cannot forget to acquire the underlying (logical) lock and cannot forget to release it, including when exceptions occur. As a result, encapsulating actions within protected operations is highly recommended.
  • Ada Gems

    Gem #69: Let's SPARK! — Part 2

    Let's get started… In the last Gem, we proved that procedure Linear_Search was free from uninitialized variable accesses and run-time errors, which are safety properties of Linear_Search.
  • Ada Gems

    Gem #68: Let's SPARK! — Part 1

    Let's get started… With Altran and AdaCore now teaming up to offer an integration of SPARK technology inside GPS (see http://www.adacore.com/home/products/sparkpro/), many GPS users will be interested in trying out the proof capabilities of SPARK on their own Ada programs. Of course it's a little more involved than that. SPARK is not only a set of tools for verifying high-assurance systems, but also incorporates a language that must be learned.
  • Ada Gems

    Gem #67: Managing the GPS Workspace

    Let's get started…When you open GPS initially, it shows a number of views: the Messages window (which can never be closed), the Project View, showing the list of files in your project, the Outline View, which shows the list of subprograms in the current edit, the Scenario View listing the scenario variables in your project, and a Welcome window to help you get started.
  • Ada Gems

    Gem #66: GPS's Key Shortcuts Editor

    Let's get started… There are several ways in which the keyshortcuts can be changed in GPS.
  • Ada Gems

    Gem #65: gprbuild

    Let's get started…GNAT allows for a great deal of flexibility in compiling applications. The traditional method is to use gnatmake on the command line, specifying the list of source directories by using "-I" switches, and letting gnatmake decide which files need to be recompiled. One drawback of this approach is that it only works for Ada files. If your application uses sources written in other languages (which is probably the case for the majority of serious applications), then you need some kind of wrapper around gnatmake. This is typically done via a Makefile: first you recompile C, C++, and other source files using standard Makefile techniques, then invoke gnatmake to handle the Ada sources, and finally (although this can also be done as part of gnatmake) bind and link your application.
  • Ada Gems

    Gem #64: Handling Multiple-Unit Source Files

    Let's get started…In lots of legacy systems that were initially developed with technologies other than GNAT, a single source file might include several Ada units (or both spec and body of a single unit).
  • Ada Gems

    Gem #63: The Effect of Pragma Suppress

    Let's get started…One of Ada's key strengths has always been its strong typing. The language imposes stringent checking of type and subtype properties to help prevent accidental violations of the type system that are a common source of program bugs in other less-strict languages such as C. This is done using a combination of compile-time restrictions (legality rules), that prohibit mixing values of different types, together with run-time checks to catch violations of various dynamic properties. Examples are checking values against subtype constraints and preventing dereferences of null access values.
  • Ada Gems

    Gem #62: C++ constructors and Ada 2005

    Let's get started…Continuing from the example discussed in the last Gem, let's derive the imported C++ class on the Ada side. For example:
  • Ada Gems

    Gem #61: Interfacing with C++ constructors

    Let's get started…Let's assume that we need to interface with the following C++ class:
  • Ada Gems

    Gem #60: Generating Ada bindings for C++ headers

    Let's get started…Generating bindings for C++ headers is done using the same options as for C headers, again using the G++ driver. This is because the binding generation tool takes advantage of the full C and C++ front ends readily available with GCC, and then translates its internal representation into corresponding Ada code.
  • Ada Gems

    Gem #59: Generating Ada bindings for C headers

    Let's get started…GNAT now comes with a new experimental binding generator for C and C++ headers which is intended to do 95% of the tedious work of generating Ada specs from C or C++ header files. Note that this is still a work in progress, not designed to generate 100% correct Ada specs.
  • Ada Gems

    Gem #58: Ada / Java exception handling

    Let's get started…Let's consider the following API:
  • Ada Gems

    Gem #57: Ada / Java cross dispatching

    Let's get started…Consider the following API:
  • Ada Gems

    Gem #56: Creating Ada to Java calls using GNAT-AJIS

    Let's get started…Consider the following API:
  • Ada Gems

    Gem #55: Introduction to Ada / Java Interfacing

    Let's get started…Suppose we have an API (Application Program Interface) on the Ada side that we would like to call from Java. This API may be based on a set of types and functions, for example:
  • Ada Gems

    Gem #54: Scripting Capabilities in GNAT (Part 2)

    Let's get started…A lot of applications have a need to execute commands on the machine. There are several use cases: a program might wish to wait for a command to complete (for instance the command generates a file that the application then needs to parse); it might spawn a command in the background and continue to execute in the meantime; or it might need to interact with an external application (sending data to its input stream and reading its output).
  • Ada Gems

    Gem #53: Safe and Secure Software: Chapter 12: Conclusion

    Let's get started…It is hoped that this booklet will have proved interesting. It has covered a number of aspects of writing reliable software and hopefully has shown that Ada is a good language and source of inspiration to use for programs that matter.
  • Ada Gems

    Gem #52: Scripting Capabilities in GNAT (Part 1)

    Let's get started…The first thing a program generally has to do is to parse its command line to find out what features a user wants to activate. Standard Ada provides the Ada.Command_Line package, which basically gives you access to each of the arguments on the command line. But GNAT provides a much more advanced package, GNAT.Command_Line, which helps to manipulate those arguments, so that you can easily extract switches, their (possibly optional) arguments and any remaining arguments. Here is a short example of using that package:
  • Ada Gems

    Gem #51: Safe and Secure Software: Chapter 11, Certified Safe with SPARK

    Let's get started…For some applications, especially those that are safety-critical or security-critical, it is essential that the program be correct, and that correctness be established rigorously through some formal procedure. For the most severe safety-critical applications the consequence of an error can be loss of life or damage to the environment. Similarly, for the most severe security-critical applications the consequence of an error may be equally catastrophic such as loss of national security, commercial reputation or just plain theft.
  • Ada Gems

    Gem #50: Overload Resolution

    Let's get started…Ada allows overloading of subprograms, which means that two or more subprogram declarations with the same name can be visible at the same place. Here, "name" can refer to operator symbols, like "+". Ada also allows overloading of various other notations, such as literals and aggregates.
  • Ada Gems

    Gem #49: Safe and Secure Software: Chapter 10, Safe Concurrency

    Let's get started…In real life many activities happen in parallel. Human beings do thing in parallel with considerable ease. Females seem to do this better than males – perhaps because they have to rock the baby while cooking the food and keeping the tiger out of the cave. The male typically just concentrates on one thing at a time such as catching that rabbit for dinner – or trying to fin his in-law’s cave without asking for directions.
  • Ada Gems

    Gem #48: Extending Interfaces in Ada 2005

    Let's get started…The classic OOP way
  • Ada Gems

    Gem #47: Safe and Secure Software : Chapter 9, Safe Communication

    Let's get started…A program that doesn't communicate with the outside world in some way is useless although very safe. Such a program might almost be in solitary confinement. A prisoner in solitary confinement is safe in the sense that he cannot hurt other people but he is equally of no use to society either.
  • Ada Gems

    Gem #46: Incompatibilities between Ada 83 and Ada 95

    Let's get started…
  • Ada Gems

    Gem #45: Safe and Secure Software : Chapter 8, Safe Startup

    Let's get started…We can carefully write a program so that it behaves properly when running, but it is all to no avail if it will not start properly.
  • Ada Gems

    Gem #44: Accessibility Checks (Part III)

    Let's get started…In Gems #1 and #2, we showed how the accessibility rules help prevent dangling pointers, by ensuring that pointers cannot point from longer-lived scopes to shorter-lived ones. But what if you want to do that?
  • Ada Gems

    Gem #43: Safe and Secure Software : Chapter 7, Safe Memory Management

    Let's get started…The memory of the computer provides a vital part of the framework in which the program resides. The integrity of the memory contents is necessary for the health of the program. There is perhaps an analogy with human memory. If the memory is unreliable then the proper functioning of the person is seriously impaired.
  • Ada Gems

    Gem #42: Safe and Secure Software : Chapter 6, Safe Object Construction

    Let's get started…This chapter covers a number of aspects of the control of objects. By objects here we mean both small objects in the sense of simple constants and variables of an elementary type such as Integer and big objects in the sense of Object-Oriented Programming.
  • Ada Gems

    Gem #41: Accessibility Checks (Part II: Ada2005)

    Let's get started…Ada 2005 allows the use of anonymous access types in a more general manner, adding considerable power to the object-oriented programming features of the language. The accessibility rules have been correspondingly augmented to ensure safety by preventing the possibility of dangling references. The new rules have been designed with programming flexibility in mind, as well as to allow the compiler to enforce checks statically.
  • Ada Gems

    Gem #40: Safe and Secure Software : Chapter 5, Safe Object Oriented Programming

    Let's get started…OOP took programming by storm about twenty years ago. Its supreme merit is said to be its flexibility. But flexibility is somewhat like freedom discussed in the Introduction – the wrong kind of flexibility can be an opportunity that permits dangerous errors to intrude.
  • Ada Gems

    Gem #39: Efficient Stream I/O for Array Types

    Let's get started…Ada has the notion of “streams” that are much like those of other languages: sequences of elements comprising values of arbitrary, possibly different, types. Placing a value into a stream is easy using the language-defined “stream attributes”. The programmer simply calls the type-specific attribute routine and specifies the stream and the value. For example, to place an Integer value V into a stream S, one could write the following:
  • Ada Gems

    Gem #38: Safe and Secure Software : Chapter 4, Safe Architecture

    Let's get started…When speaking of buildings, a good architecture is one whose design gives the required strength in a natural and unobtrusive manner and thereby provides a safe environment for the people within. An elegant example is the Pantheon in Rome whose spherical shape has enormous strength and provides an uncluttered space. Many ancient cathedrals are not so successful, and need buttresses tacked on the outside to prop up the walls. In 1624, Sir Henry Wooton summed the matter up in his book, The Elements of Architecture, by saying "Well building hath three conditions – commoditie, firmenes & delight". In modern terms, it should work, be strong and be beautiful as well.
  • Ada Gems

    Gem #37: Bounded Buffer package in GNAT Hierarchy (Part 2)

    Let's get started…To recap Part 1, protected types add an efficient building block to the tasking facilities of Ada. Mutual exclusion is automatically provided and condition synchronization is directly expressed via entry barriers, all without the expense of task switching. As such, protected types are a natural implementation approach for a circular bounded buffer used in a concurrent programming context. The complete declaration of the generic package and encapsulated protected type are shown below, including now the private part. (We have omitted the comments in the code since we cover them in the description.)
  • Ada Gems

    Gem #36: Safe and Secure Software : Chapter 3, Safe Pointers

    Let's get started…Primitive man made a huge leap forward with the discovery of fire. Not only did this allow him to keep warm and cook and thereby expand into more challenging environments but it also enabled the creation of metal tools and thus the bootstrap to an industrial society. But fire is dangerous when misused and can cause tremendous havoc; observe that society has special standing organizations just to deal with fires that are out of control.
  • Ada Gems

    Gem #35: Bounded buffer package in GNAT hierarchy (Part 1)

    Let's get started…The bounded buffer is a classic concurrent programming component exhibiting asynchronous task interactions. The concept is that of a buffer of a fixed size that is accessed by multiple tasks, some inserting items and some removing them, concurrently and asynchronously. Hence the buffer implementation must be protected against race conditions in which the tasks access the implementation in an interleaved manner and thereby corrupt the representation. In addition to this “mutually exclusive access”, the buffer also requires “condition synchronization”, in which callers are kept waiting until the requested buffer has the necessary state. For example, a task cannot remove an item from a buffer when the buffer is empty. Likewise, an item cannot be put into a buffer when the buffer is full.
  • Ada Gems

    Gem #34: Safe and Secure Software : Chapter 2, Safe Typing

    Let's get started…Safe typing is not about preventing heavy-handed use of the keyboard, although it can detect errors made by typos!
  • Ada Gems

    Gem #33: Accessibility Checks (Part I: Ada95)

    Let's get started…Ada is a block-structured language, which means the programmer can nest blocks of code inside other blocks. At the end of a block, all objects declared inside of it go out of scope, meaning they no longer exist, so the language disallows pointers to objects in blocks with a deeper nesting level.
  • Ada Gems

    Gem #32: Safe and Secure Software : Chapter 1, Safe Syntax

    Let's get started…Syntax is often considered to be a rather boring mechanical detail. The argument being that it is what you say that matters but not so much how it is said. That of course is not true. Being clear and unambiguous are important aids to any communication in a civilized world.
  • Ada Gems

    Gem #31: Preconditions/postconditions

    Let's get started…The notion of preconditions and postconditions is an old one. A precondition is a condition that must be true before a section of code is executed, and a postcondition is a condition that must be true after the section of code is executed.
  • Ada Gems

    Gem #30: Safe and Secure Software : Introduction

    Let's get started…The aim of this booklet is to show how Ada 2005 addresses the needs of designers and implementers of safe and secure software. The discussion will also show that those aspects of Ada that make it ideal for safety-critical and security-critical application areas will also simplify the development of robust and reliable software in many other areas.
  • Ada Gems

    Gem #29: Introduction to the Ada Web Server (AWS)

    Let's get started…This Gem presents a basic introduction the Ada Web Server (AWS). The core components of AWS comprise a Web server which supports the HTTP protocol. This Web server can be embedded into any application. Common usages are:
  • Ada Gems

    Gem #28: Changing Data Representation (Part 2)

    Last week, we discussed the use of derived types and representation clauses to achieve automatic change of representation. More accurately, this feature is not completely automatic, since it requires you to write an explicit conversion. In fact there is a principle behind the design here which says that a change of representation should never occur implicitly behind the back of the programmer without such an explicit request by means of a type conversion.
  • Ada Gems

    Gem #27: Changing Data Representation (Part 1)

    Let's get started…A powerful feature of Ada is the ability to specify the exact data layout. This is particularly important when you have an external device or program that requires a very specific format. Some examples are:
  • Ada Gems

    Gem #26: The Mod Attribute

    Let's get started…Ada has two kinds of integer type: signed and modular:
  • Ada Gems

    Gem #25: How to Search Text

    Let's get started…The Ada standard defines several subprograms related to searching text in a string. In addition, GNAT provides additional packages to search. This gem will cover the various possibilities.
  • Ada Gems

    Gem #24: Null Considered Harmful (Part 2—Efficiency)

    Let's get started… In last week's gem, we talked about the documentation advantages of using "not null". Here's another example, first with null:
  • Ada Gems

    Gem #23: Null Considered Harmful

    Let's get started…Ada, like many languages, defines a special 'null' value for access types. All values of an access type designate some object of the designated type, except for null, which does not designate any object. The null value can be used as a special flag. For example, a singly-linked list can be null-terminated. A Lookup function can return null to mean "not found", presuming the result is of an access type:
  • Ada Gems

    Gem #22: Ada Speaks Many Languages

    Let's get started…The only characters allowed in an Ada 83 program (for strings, comments, and identifiers) were 7-bit ASCII symbols. That was annoying. In Ada 83 we could not write:
  • Ada Gems

    Gem #21: How to parse an XML text

    Let's get started…There are two main APIs to parse an XML file. One (the Document Object Model, DOM) reads the file and generates a tree in memory representing the whole document. Typically, because of the amount of operations mandated by the specifications, this tree is several times larger than the document itself, and thus depending on the amount of memory on your machine, it might limit the size of documents your application can read. On the other hand, it provides a lot of flexibility in the handling of these trees.
  • Ada Gems

    Gem #20: Using pragma Shared_Passive for data persistence

    Let's get started…Data persistence can be achieved in many ways starting as simple as using hand-written code to store and load data into some text files to something as complex as mapping the data into a relational or object database for example.
  • Ada Gems

    Gem #19: XML streaming of Ada objects

    Let's get started…Since Ada 95 it has been possible to stream any object. Using 'Input/'Output or 'Read/'Write attributes, any object (tagged or not) can be streamed using a binary representation. This means that objects can be written into a file or sent over a socket, for example.
  • Ada Gems

    Gem #18: Warnings in GNAT

    Let's get started…The recent "gems" about pragma No_Return talked a lot about compile-time checks that generate warnings. Indeed, GNAT is capable of generating lots of useful warnings. Here is some advice about how to get the most out of these warnings.
  • Ada Gems

    Gem #17: Pragma No_Return, Part 2 (functions)

    Let's get started…A function should always return a value or raise an exception. That is, reaching the "end" of a function is an error. In Ada, this error is detected in two ways:
  • Ada Gems

    Gem #16: Pragma No_Return

    Let's get started…Did he ever return,No he never returnedAnd his fate is still unlearn'dHe may ride forever'neath the streets of BostonHe's the man who never returned.-- from "Charlie on the M.T.A."-- by The Kingston Trio
  • Ada Gems

    Gem #15: Timers

    Let's get started…Timers are essential software elements of embedded and real-time systems. Thus, making an intuitive and easy way to create timers helps in the software design process. Ada provides a predefined package named Ada.Real_Time.Timing_Events for doing just that. With this package, a timer, one-shot or periodic one, can be created with a breeze. Furthermore, these timers can be genericized for different durations. Going one step further these generic timers can be combined in a single generic package as shown below along with the test codes. Note that the test codes are pretty crude. However, the output is printed out for each second approximately. Thus, the test results can be checked using one thousand count rule, one thousand one, one thousand two...
  • Ada Gems

    Gem #14: Interrupt Handling Idioms (Part 2)

    Let's get started…Last week we introduced this topic and explored the first of the two designs. The gist of it is that we want to implement a multi-level response to interrupts, in which a protected procedure implements the first-level handler and a task implements the secondary level handling outside of the interrupt context. We use serial communications over a UART (Universal Asynchronous Receiver Transmitter) as the example. In both designs we encapsulate the two levels of the interrupt handling code inside the body of a package named Message_Processor.
  • Ada Gems

    Gem #13: Interrupt Handling Idioms (Part 1)

    Let's get started…Recall that, in Ada, protected procedures are the standard interrupt-handling mechanism. This approach has a number of advantages over the “traditional” use of non-protected procedures. First, normal procedures don’t have a priority, but protected objects can have an interrupt priority assigned and are thus integrated with the overall priority semantics. Execution of entries and procedures within the protected object will execute at that level and only higher-level interrupts can preempt that execution. Thus no race conditions are possible either. Additionally, condition synchronization is expressed directly, via entry barriers, making interaction with other parts of the system easy to express and understand. Finally, protected objects support localization of data and their manipulating routines, as well as localization of multiple interrupt handlers within one protected object when they each need access to the local data.
  • Ada Gems

    Gem #12: Limited Types in Ada 2005 — <> Notation Part 2

    Let's get started… Have you ever written Ada 95 code like this?
  • Ada Gems

    Gem #11: Limited Types in Ada 2005 — Constructor Functions Part 2

    Let's get started… We've earlier seen examples of constructor functions for limited types similar to this:
  • Ada Gems

    Gem #10: Limited Types in Ada 2005 — Extended Return Statements

    Let's get started… A common idiom in Ada 95 is to build up a function result in a local object, and then return that object:
  • Ada Gems

    Gem #9: Classwide Operations, Iterators, and Generic Algorithms

    Let's get started…In the last gem, we used a stack class to demonstrate factory functions (to construct iterator objects), and implemented an assignment operation that dispatched on the type of the target stack. We mentioned in passing that that operation could be implemented by dispatching on the source stack, so let's show how to do that.
  • Ada Gems

    Gem #8: Factory Functions

    Let's get started…Suppose we have a generic package that declares a stack class. The root of the hierarchy would be as follows:
  • Ada Gems

    Gem #7: The Beauty of Numeric Literals in Ada

    Let's get started…On an unusually hot end-of-summer day some years ago, I stepped into the Courant Institute of Mathematical Sciences. It was my first day of class at New York University and my first day with Ada. The heat was pounding and the classroom air-conditioning unit was being repaired.
  • Ada Gems

    Gem #6: The Ada95 Multiple Views Idiom vs. Ada05 Interfaces

    Let's get started…One of the major changes to the Ada language is the addition of interfaces, stateless types that specify a set of operations. Like a tagged type, you can derive from an interface type, but unlike a tagged type, you can derive from multiple interfaces simultaneously.
  • Ada Gems

    Gem #5: Key-Based Searching In Set Containers

    Let's get started…This example demonstrates how to use hashed set containers.
  • Ada Gems

    Gem #4: PWM Position Control for Radiocontrol Servos

    Let's get started…IntroductionPulse Width Modulation (PWM) is a common mechanism for encoding analog information on a digital line, and is commonly used in control signals. It consists of generating pulses on the digital line. The width of the pulse, i.e., the time interval during which the signal is high (or low), is proportional to the analog value that is used as a control signal.
  • Ada Gems

    Gem #3: Limited Types in Ada 2005 — Constructor Functions

    Let's get started… Given that Ada 2005 allows build-in-place aggregates for limited types, the obvious next step is to allow such aggregates to be wrapped in an abstraction — namely, to return them from functions. After all, interesting types are usually private, and we need some way for clients to create and initialize objects.
  • Ada Gems

    Gem #2: Limited Types in Ada 2005 — <> Notation in Aggregates

    Let's get started… Last week, we noted that Ada 2005 allows aggregates for limited types. Such an aggregate must be used to initialize some object (which includes parameter passing, where we are initializing the formal parameter). Limited aggregates are “built in place” in the object being initialized.
  • Ada Gems

    Gem #1: Limited Types in Ada 2005 — Limited Aggregates

    Let's get started… One of my favorite features of Ada is the “full coverage rules” for aggregates. For example, suppose we have a record type:
  • Pages

    Legal

    Legal information about the use of AdaCore trademarks and the full AdaCore privacy policy applying to all personal data collected on AdaCore websites.
  • Videos

    Rhapsody Ada and GNAT Pro integration

  • Videos

    AdaCore University: Programming in the Large

  • Videos

    Managing Avionics Safety Certification in UAS Platforms

  • Videos

    Building High Assurance Software without Breaking the Bank

  • Pages

    Privacy Policy

    This privacy policy, which applies to all personal data collected on AdaCore websites, describes how AdaCore collect, store and use personal data.
  • Pages

    Thank You for Registering

  • Pages

    Thank you for your request.

    Your request for pricing info is received. An AdaCore representative will follow up with you shortly.
  • Pages

    Thank you for signing up

  • Pages

    ATM

    AdaCore’s tools and services are the ideal choice for developing large, long-lived Air Traffic Management systems, where safety and security is paramount.
  • Pages

    DO-178

    AdaCore provides software developers in the in the Avionics industry with qualified tools and certified runtimes to meet the DO-178C standard requirements.
  • Pages

    Space

    AdaCore provides qualified tools and certified runtimes to Space industry developers building critical software meeting ECSS certification requirements.
  • Pages

    AdaCore Tech Days Boston

    AdaCore presents the latest news and provide technical roadmaps for the company's product offerings - GNAT Pro, CodePeer, SPARK Pro, and QGen.
  • Pages

    Rail

    AdaCore provides rail software developers with qualified tools and certified runtimes they need to build EN 50128 certified software systems.
  • Pages

    Defense

    AdaCore provides tools and services help developers build applications that meet the safety and security standards required for military applications.
  • Pages

    Automotive

    AdaCore’s enables developers working on critical automotive applications to optimize their development, verification, and certification processes.
  • Pages

    ESARR

    What is ESARR? ESARR 4 is the EUROCONTROL Safety Regulatory Requirement “Risk Assessment and Mitigation in Air Traffic Management". Read here for more.
  • Pages

    CAP670-SW01

    What is CAP670 / SW01? CAP670/SW01 assumes that software safety requirements have been derived from a full risk and safety analysis of the system.
  • Pages

    Inside AdaCore

    Newletter sign-up and archives. InSide AdaCore is the AdaCore newsletter published twice a year, providing news on all things related to AdaCore.
  • Videos

    Developing Embedded Systems in Ada

  • Pages

    Product Demos

  • Press Releases

    AdaCore Announces Winners for Second Annual “Make with Ada” Programming Competition

    Entries demonstrate the ease of using Ada and SPARK languages for developing reliable, safe and secure software
  • Documentation

    GPRbuild And GPR Companion Tools User's Guide

    This guide documents GPR technology, a project framework designed for the description and construction of large multi-language systems organized into subsystems and libraries.
  • Documentation

    GNAT CCG User's Guide Supplement

    GNAT Common Code Generator user manual comes in addition to the GNAT user's guide and reference manual.
  • Pages

    Code Samples

    ASIS, GNAT, GtkAda, GLADE code samples
  • Press Releases

    Ada on Board: Thales Using AdaCore’s GNAT Pro for Critical Avionics Software

    Qualified autocode generator implemented in Ada
  • Pages

    Thank you for your request.

    Your request for pricing info is received. An AdaCore representative will follow up with you shortly.
  • Articles

    Assessing the Ada Language for Audio Applications

  • Pages

    Security

  • Pages

    Tokeneer

  • Press Releases

    MDA Selects AdaCore’s GNAT Pro Assurance Development Platform for International Space Station Software

    NEW YORK and PARIS and BURLINGTON, Mass., November 15, 2017 – AdaCore Tech Days – AdaCore today announced that MDA, a business unit of Maxar Technologies, has selected the GNAT Pro Assurance Ada development environment for the LEON3 target processor, to produce the software for a Ku-Band communication subsystem that will replace the current version. This critical International Space Station (ISS) subsystem has to work reliably over the long term, a requirement that led MDA to maintain Ada as the implementation language. With GNAT Pro Assurance, a service known as sustained branches allows MDA to continue developing and maintaining their software over the long term using a specific version of the GNAT Pro technology, with access to code generator updates to correct critical issues.
  • Press Releases

    AdaCore Launches New GNAT Pro Product Lines

    Flagship Ada Development Environment Addresses New Needs and Domains
  • Documentation

    GNAT User's Guide For Native Platforms

    This guide describes the use of GNAT, a compiler and software development toolset for the full Ada programming language. It describes the features of the compiler and tools, and details how to use them to build Ada applications.
  • Documentation

    GNAT User's Guide Supplement For Cross Platforms

    This guide describes the use of GNAT Pro, a compiler and software development toolset for the full Ada programming language, in a cross compilation environment.
  • Articles

    Ada: a C Developer's Perspective

  • Articles

    A Look Inside NIST’s “Dramatically Reducing Security Vulnerabilities” Report

  • Articles

    Hybrid Verification: Mixing Formal Methods and Testing

  • Articles

    The Embedded Muse

  • Articles

    Where the software meets the road: Certifying the safety of self-driving cars

  • Articles

    Let the Formal Be With You Taking on Software Safety and Reliability with Formal Verification

  • Articles

    GNAT Pro Developer Cuts Ada, SPARK Development Costs

  • Press Releases

    AdaCore Exhibiting and Presenting at ERTS2 2018

    Software safety, avionics certification, and static analysis to be addressed at Embedded Real-Time Software and Systems Conference in Toulouse
  • Articles

    Where the software meets the road: Certifying the safety of self-driving cars

  • Events

    ERTS

    AdaCore will be exhibiting at this event, Cyrille Comar will present "What is software safety? A journey across domains and safety standards" and "Avionics Certification: Back to Fundamentals with Overarching Properties" and Yannick Moy will present "Safe and Secure Autopilot Software for Drones" and "Lightweight checkers in a new light"


    AdaCore will be exhibiting at stand number 21

  • Events

    FOSDEM

    AdaCore will attend and present papers at FOSDEM. Yannick Moy will present “SPARK Language: Historical Perspective & FOSS Development”. Fabien Chouteau will present “Making the Ada_Drivers_Library: Embedded Programming with Ada”. And Raphaël Amiard and Pierre-Marie de Rodat will present “Easy Ada Tooling with Libadalang”.

  • Events

    SSS (Safety-Critical Systems Symposium)

    AdaCore will be exhibiting at this event

  • Events

    Embedded World Europe

    AdaCore will be exhibiting at this event

  • Events

    TU Automotive

    AdaCore will be exhibiting at this event

  • Events

    Ada Europe

    AdaCore will be exhibiting and presenting at this event.

  • Events

    Aviation Electronics Europe

    AdaCore will be exhibiting at this event

  • Pages

    2017 Tech Days Slides

    View a collection of slides from our 2017 AdaCore Tech days, held in Boston.
  • Press Releases

    DENSO Using SPARK Technology for Automotive Research Project

    Formal methods help to demonstrate Freedom from Interference
  • Articles

    Improving Code Quality in the New Year

  • Pages

    GAP Registration

    Register for the GNAT Academic Program
  • Pages

    GAP Community Agreement

    The terms and conditions for the GNAT Academic Community Agreement.
  • Events

    Dedicated Systems Tech Days 2018

    AdaCore will be exhibiting at this event.

    Eric Perlade will present the talk ‘Guaranteeing Software Quality Through Formal Verification’.

    This year's theme is ‘Building reliability, safety and security into complex software and systems’.

  • Press Releases

    AdaCore V18.1 Product Release Brings New Software Development and Verification Solutions

    GNAT Pro, CodePeer, SPARK Pro and QGen upgraded with new features, better performance
  • Pages

    Thank you for signing up for GAP

  • Articles

    Model-level debugging: a bridge between control engineering and software engineering

  • Pages

    CodePeer Updates

    Review the latest updates to CodePeer.
  • Articles

    Levels of Software Assurance in SPARK

  • Pages

    About SPARK

    SPARK is a software development technology specifically designed for engineering high-reliability applications.
  • Pages

    Proof in Use

    SPARK is a software development technology specifically designed for engineering high-reliability applications.
  • Press Releases

    Scandinavian Real Heart Selects AdaCore Embedded Software Development Platform for Revolutionary Artificial Heart

    AdaCore software development and verification tools help Real Heart deliver the high assurance, safety, and reliability that lifesaving medical devices demand.
  • Pages

    Frama-C & SPARK Days 2018

    Ada public training courses target software professionals looking for a practical introduction to the Ada language features, including those in Ada 2012.
  • Pages

    CWE

    The CWE™ (Common Weakness Enumeration) is an evolving resource that defines and categorizes a list of common software security weaknesses.
  • Pages

    Sound Static Analysis for Security Workshop

    Sound Static Analysis for Security: this two-day workshop is focused on decreasing software security vulnerabilities. Sign up today to attend the event.
  • Pages

    Registration

    Register for the Sound Static Analysis for Security Workshop from Wednesday, June 27th through Thursday, June 28 in Gaithersburg, Md
  • Pages

    Program

    View the program for the Sound Static Analysis for Security Workshop from Wednesday, June 27th through Thursday, June 28
  • Pages

    Venue

    The Sound Static Analysis for Security Workshop will be held at NIST in Gaithersburg, MD. Accommodations and transport are available at the Holiday Inn
  • Pages

    AdaCore Tech Days Paris

    AdaCore technical staff will present the latest news about the company's current and planned product offerings and activities at this free event in Paris.
  • Pages

    Sound Static Analysis: 5-point seat belts for your code

    Dr. Paul E. Black has nearly 20 years of industrial experience in areas such as developing software for assuring software quality. See his talk.
  • Press Releases

    AdaCore / Rapita Systems Partnership: Verifying critical code with GNAT Pro and RVS

    Ada was designed for use in real-time embedded systems, and is commonly regarded as one of the safest and most secure languages. This makes it particularly relevant for use in mission- and safety-critical applications, where safety standards such as DO-178C require that evidence be provided to demonstrate that hardware/software platforms operate within a required safety level. This evidence can be furnished by the GNAT Pro toolset and the Rapita Verification Suite (RVS), complementary tools that can help ensure software’s safety and adherence to coding guidelines and can collect evidence needed for certification from tests of the software.
  • Events

    Ada Deutschland- Workshop "Konstruktion von SafeWare"

    AdaCore will be exhibiting at this event

  • Events

    AdaCore US Tech Days

    AdaCore will be holding it's annual Tech Days in Boston

  • Events

    Embedded Software Engineering Kongress

    Adacore will be exhibiting at this event

  • Pages

    If it works, it’s legacy: analysis of legacy code

    Dr. Wheeler will provide an overview of how sound static analysis approaches can facilitate the development of higher quality and more secure software.
  • Pages

    Proving sequential properties of unmodified Linux kernel code

    Alexey works for Ivannikov Institute for System Programming of the Russian Academy of Sciences (ISPRAS) since 1999. See his talk!
  • Pages

    Proving security properties in software of unknown provenance

    Dr. Hocking is a principal scientist at Dependable Computing specializing in formal methods and safety cases. See his talk!
  • Pages

    The Q-compiler for verifying high-consequence controls

    Jon Aytac is a senior staff member in the Sandia Formal Methods Group. He worked at Apple for 5 years, then studied Quantum Computing. See his talk.
  • Pages

    Applying formal methods to existing software: what can you expect?

    Benjamin Monate is co-founder and CTO of TrustInSoft. He is the initial inventor of Frama-C and lead its research & development team. See his talk.
  • Pages

    Trends in automated verification

    Dr. K. Rustan M Leino is a Senior Principal Engineer at Amazon. He is known for his work on formal techniques and tools for verifying software correctness.
  • Pages

    Reimplement? Reuse? Both! — trustworthy systems with Genode and SPARK

    Alexander Senier is the founder and CEO of Componolit, developing an open-source OS to run critical IoT applications in a trustworthy environment.
  • Pages

    Mixing formal methods to increase robustness against cyber-attacks

    Laurent Voisin has been applying formal methods in industry for 20 years. He has gained experience in using formal methods in actual development projects.
  • Pages

    Enhance verification using ghost code

    Claire has a PhD in computer science specialized in formal proof of programs. She has been working as a software developer and proof expert at AdaCore.
  • Pages

    A Formally Verified Floating-point Implementation of the Compact Position Reporting Algorithm

    Mariano Moscato is working in the National Institute of Aerospace as part of the NASA Langley Formal Methods Group. See his talk.
  • Pages

    Lessons from verifying legacy Java code for C++ specification & verification

    David Cok is a researcher in formal methods and deductive verification, with an emphasis on practical application to industrial software. See his talk.
  • Pages

    Soundness, evidence and discipline in high-assurance software

    Rod is working on merging the discipline of traditional high-integrity processes with agile approaches and the philosophy of the Lean Engineering Movement.
  • Pages

    Runtime verification of security properties with E-ACSL

    Julien Signoles is one of the main developers of Frama-C, a code analysis framework for C code, and the author of E-ACSL, its runtime verification plug-in.
  • Pages

    Industrial use of Formal Methods: a feedback from various experiments with Frama-C

    David Mentré focuses his research on Formal Methods as a way to ensure 100% correctness of crucial properties in safety critical systems at a lower cost.
  • Pages

    Practical application of SPARK: a business case and roadmap for new users

    Stuart Matthews is currently the R&T Manager within the Intelligent Systems Expertise Centre at Altran UK. See his talk.
  • Pages

    Reflections on industrial use of Frama-C

    Joe Kiniry will focus on opportunities and challenges in using several Frama-C plugins as compared to comparable tools for other platforms and languages.
  • Pages

    Proving memory safety of C programs

    Henny Sipma's talk is to be determined.
  • Articles

    Secure Programming with SPARK

  • Pages

    Resources in Japanese

    We're pleased to be able to offer the following resources translated to Japanese.
  • Events

    Sound Static Analysis for Security Workshop

    Sound Static Analysis for Security: this two-day workshop is focused on decreasing software security vulnerabilities by orders of magnitude, using the strong guarantees that only sound static analysis can provide. The workshop is aimed at developers, managers and evaluators of security-critical projects, as well as researchers in cybersecurity.

  • Articles

    Toward safety and security in FACE components: High assurance with portability

  • Articles

    You think your software works? Prove it!

  • Pages

    EN 50128

    EN 50128 is a certification standard issued by CENELEC (the European Committee for Electrotechnical Standardization).
  • Pages

    Exhibitors

    This event will be accompanied by a vendor exhibition which will enable delegates to meet with a number of key product and services vendors.
  • Events

    34th International Conference on Massive Storage Systems and Technology (MSST 2018)

    AdaCore will presenting the tutorial "Big Data for Big Problems (and the technology that underpins it)" in partnership with Georgetown University.

  • Documentation

    GNATdoc User's Guide

    The user guide for GNATdoc, a tool that automatically generates documentation from the comments and annotated comments of an Ada project.
  • Events

    High Integrity Software Conference 2018

    AdaCore is co-organising, sponsoring and will be exhibiting at this event.

    Yannick Moy will present the talk "Programming languages for C-cured software

  • Events

    ARM TechCon

    AdaCore will be exhibiting at the event

  • Events

    FACE Technical Interchange Meeting

    AdaCore will be presenting and exhibiting at this event

  • Books

    AdaCore Technologies for Cybersecurity

    Building secure software is a challenging task. It seems that almost every week we read the news about yet another computer system that has failed in some way in the face of malicious or accidental misuse. “Cyber Security” is a wide-ranging field, spanning human factors, hardware design, sociology, and legal issues, in addition to software engineering. This booklet summarizes the contribution that the Ada and SPARK languages and AdaCore’s tools can make to this final area—how to develop and verify correct and secure software.

    Unlike AdaCore’s previous guides to airborne and rail system software, this booklet does not follow the structure or requirements of a particular standard—in part because there is no widely used security standard that is required in practice. Instead it offers a more general treatment of the problem, but also includes an analysis of how AdaCore’s technologies help address the weaknesses identified in the MITRE Corporation’s Common Weakness Enumeration (CWE). The content is based on the authors’ many years of practical experience in the development of high-end secure systems, the design of the Ada and SPARK programming languages, and research into program verification tools.

    The booklet is intended for readers who are involved with software at any level (developers, project managers, procurement personnel) and who would like to learn how currently available technology can help address some of the most serious challenges associated with software and security. Our goal is to provide useful guidance both to those who are using other languages and are interested in the benefits that Ada offers, and to existing Ada users who might be confronted with new security requirements.

  • Books

    Embedded SPARK and Ada Use Cases

    This book is a sampling of AdaCore blogs, including some of our engineers’ ARM project creations! They illustrate how embedded system developers can take advantage of Ada’s benefits in software reliability, early error detection, code readability, and maintainability while still satisfying performance requirements.

    The blogs were written by Raphaël Amiard, Jonas Attertun, Arnaud Charlet, Fabien Chouteau, Tristan Gingold, Anthony Leonardo Gracio, Johannes Kanig, Jérôme Lambourg, Yannick Moy, Jorge Real, J. German Rivera, Pat Rogers and Rob Tice.

    For more blogs, visit our AdaCore Blog Page http://blog.adacore.com.

  • Articles

    5 Minutes with...Yannick Moy

  • Press Releases

    AdaCore’s GNAT Pro Ada Toolchain Released for BlackBerry QNX

    AdaCore and BlackBerry partnering to support development of critical applications
  • Papers

    Climbing the Software Assurance Ladder

    There is a strong link between software quality and software reliability. By decreasing the probability of imperfection in the software, we can augment its reliability guarantees. At one extreme, software with one unknown bug is not reliable. At the other extreme, perfect software is fully reliable. Formal verification with SPARK has been used for years to get as close as possible to zero-defect software. We present the well established processes surrounding the use of SPARK at Altran UK, as well as the deployment experiments performed at Thales to fine-tune the gradual insertion of formal verication techniques in existing processes. Experience of both long-term and new users helped us define adoption and usage guidelines for SPARK based on five levels of increasing assurance that map well with industrial needs in practice.

  • Papers

    Lightweight Interactive Proving inside an Automatic Program Verifier

    Among formal methods, the deductive verification approach allows establishing the strongest possible formal guarantees on critical software. The downside is the cost in terms of human effort required to design adequate formal specifications and to successfully discharge the required proof obligations. To popularize deductive verification in an industrial software development environment, it is essential to provide means to progressively transition from simple and automated approaches to deductive verification. The SPARK environment, for development of critical software written in Ada, goes towards this goal by providing automated tools for formally proving that some code fulfills the requirements expressed in Ada contracts.

    In a program verifier that makes use of automatic provers to discharge the proof obligations, a need for some additional user interaction with proof tasks shows up: either to help analyzing the reason of a proof failure or, ultimately, to discharge the verification conditions that are out-of-reach of state-of-the-art automatic provers. Adding interactive proof features in SPARK appears to be complicated by the fact that the proof toolchain makes use of the independent, intermediate verification tool Why3, which is generic enough to accept multiple front-ends for different input languages. This paper reports on our approach to extend Why3 with interactive proof features and also with a generic client-server infrastructure allowing integration of proof interaction into an external, front-end graphical user interface such as the one of SPARK.

  • Events

    22nd International Symposium on Formal Methods

    Sylvain Dailler and Claude Marché will present the talk "Lightweight Interactive Proving inside an Automatic Program Verifier" in the F-IDE Workshop.

    Yannick Moy will present "Climbing the Software Assurance Ladder -Practical Formal Verification for Reliable Software" during the AVoCS workshop.

  • Events

    Open Source Innovation Spring - OSIS - Track IoT Critique 2018

    Fabien Chouteau and Yannick Moy will be presenting the talk "Ada and SPARK - Defense in Depth for Safe Micro-controller Programming"

  • Press Releases

    University of Colorado’s Laboratory for Atmospheric and Space Physics adopts Ada and GNAT Pro for NASA project

    Ada selected over C to run on a Cortex M1 core
  • Events

    GNU Tools Cauldron

    AdaCore will be exhibiting at this event and is a major sponsor

  • Articles

    System complexity, safety, security drive continued adoption of Ada, SPARK in aerospace and defense software engineering

  • Press Releases

    AdaCore Tools Streamline Development of Safe, Secure, Automotive and Autonomous System Software

    AdaCore’s advanced software development and verification tools help enhance the safety and security of automotive, autonomous, and advanced driver-assistance systems while facilitating future technology upgrades and requirements.
  • Articles

    AdaCore at TU Automotive 2018

  • Press Releases

    AdaCore’s GNAT Pro Supports Lynx Software Technologies’ LynxSecure Separation Kernel Hypervisor on Intel Processors

    Ada toolset allows developers to field software components for Windows, Linux, LynxOS-178 and LynxSecure Application partitions
  • Press Releases

    AdaCore Extends Support for Wind River VxWorks Portfolio

    GNAT Pro Ada and VxWorks offer 32-bit and 64-bit support on the latest Arm, Intel, and Power multi-core processors
  • Articles

    AdaCore Technologies for cybersecurity, part 2: The challenge of secure software

  • Articles

    Les outils de développement de logiciels système sûrs d’AdaCore se frottent à l’automobile

  • Pages

    Thank you for voting

    Thank you
  • Press Releases

    AdaCore Shows How to Address the Cybersecurity Challenge

    Free book offers guidance for achieving secure and reliable software
  • Papers

    Safe Dynamic Memory Management in Ada and SPARK

    Abstract. Handling memory in a correct and efficient way is a step toward safer, less complex, and higher performing software-intensive systems. However, languages used for critical software development such as Ada, which supports formal verification with its SPARK subset, face challenges regarding any use of pointers due to potential pointer aliasing. In this work, we introduce an extension to the Ada language, and to its SPARK subset, to provide pointer types (“access types” in Ada) that provide provably safe, automatic storage management without any asynchronous garbage collection, and without explicit deallocation by the user. Because the mechanism for these safe pointers relies on strict control of aliasing, it can be used in the SPARK subset for formal verification, including both information flow analysis and proof of safety and correctness properties. In this paper, we present this proposal (which has been submitted for inclusion in the next version of Ada), and explain how we are able to incorporate these pointers into formal analyses.

  • Pages

    About Ada

    Ada is a state-of-the art programming language used for critical software: fsmall-footprint, real-time embedded systems to large-scale enterprise systems.
  • Pages

    Timeline of the Ada Programming Language

    timeline of the Ada programming language
  • Videos

    Ada and GPUs

  • Articles

    Simple On-Line Training For Complex Topics

  • Articles

    You Can Now Learn SPARK and Ada Online

  • Articles

    Reliable, Safe and Secure? Ada and VxWorks Can Help!

  • Pages

    GAP Courses

    A set of courses available to GNAT Academic Program members
  • Events

    HILT 2018 Workshop

    The High Integrity Language Technology is focused on the cyber-resilience needs of critical software systems, where such a system must be trusted to maintain a continual delivery of services, as well as ensuring safety in its operations. Such needs have common goals and shared strategies, tools, and techniques, recognizing the multiple interactions between security and safety.

    This workshop is designed as a forum for communities of researchers and practitioners from academic, industrial, and governmental settings, to come together, share experiences, and forge partnerships focused on integrating and deploying tool and language combinations to address the challenges of building cyber-resilient software-intensive systems. The workshop will be a combination of presentations and panel discussions, with one or more invited speakers.

    AdaCore is an active actor and part of the Organizing and Program Committees.
  • Documentation

    Libadalang User Manual

    Libadalang is a library for parsing and semantic analysis of Ada code. It is meant as a building block for integration into other tools (IDE, static-analyzers, etc..). This documentation provides a guide to use Libadalang and references for its various APIs.
  • Pages

    Challenge 1 – Uninitialized variables and fields

    See if you can find the bug in this code that defines a library Contacts of helper functions that access a database of contacts stored in an array.
  • Pages

    Challenge 2 – Unused assignments and conditions predetermined

    See if you can find the bug in this code that defines a library Contacts of helper functions that access a database of contacts stored in an array.
  • Pages

    Challenge 3 – Discriminant record and null pointer

    See if you can find the bug in this code that defines a library Contacts of helper functions that access a database of contacts stored in an array.
  • Pages

    Challenge 4 – Protected objects, tasks and race conditions

    See if you can find the bug in this code that defines a library Contacts of helper functions that access a database of contacts stored in an array.
  • Pages

    Challenge 5 – Dead, unused, predetermined and suspicious code

    See if you can find the bug in this code that defines a library Contacts of helper functions that access a database of contacts stored in an array.
  • Pages

    Challenge 6 – Generated preconditions and postconditions

    See if you can find the bug in this code that defines a library Contacts of helper functions that access a database of contacts stored in an array.
  • Pages

    Challenge 7 – Initialization, array checks and range checks

    See if you can find the bug in this code that defines a library Contacts of helper functions that access a database of contacts stored in an array.
  • Pages

    Challenge 8 – Dynamic Dispatching, Dead Code and Floats

    See if you can find the bug in this code that defines a library Contacts of helper functions that access a database of contacts stored in an array.
  • Pages

    Challenge 9 – Checking User-Specified Contracts

    See if you can find the bug in this code that defines a library Contacts of helper functions that access a database of contacts stored in an array.
  • Papers

    Controlling Costs with Software Language Choice — How Ada Can Help

    Much has been written about impact of IoT. There are new customer requirements, new business models, and competitive pressure all driving change within engineering organizations. These shifting requirements have catalyzed more and more need for connectivity middleware, remote management capabilities and increasing interest in technologies like machine vision and energy harvesting. This document looks at the contributions that Ada can provide in controlling the associated costs.

    See also the associated webinar by VDC Research.

  • Articles

    What's the Difference Between Sound and Unsound Static Analysis?

  • Articles

    It’s Time to Use a Safer C

  • Press Releases

    AdaCore Demonstrating GNATcheck Ada Coding Standard Enforcement Tool for FACE™ Components

    GNAT Pro tool checks adherence to Ada subsets for Safety Base / Security and Safety Extended profiles of the FACE Technical Standard
  • Videos

    Cybersecurity & You: Vulnerability Exists Between Chair and Keyboard

  • Articles

    La nouvelle ligne de produits d’AdaCore réduit les coûts de certification DO‑178B/C pour l’avionique

  • Articles

    The AdaCore Edge: Development and Verification Technologies for Software that Matters

  • Press Releases

    High Integrity Software Conference reaches out to budding developers in its fifth year

    The High Integrity Software Conference will take place in Bristol on 6November 2018. Now entering its fifth year, the conference continues to be the premier annual forum for the sharing of challenges, best practice and experience between software engineering practitioners – for software that matters. This mission continues to grow in importance, with 2018 having once again been a year in which software fallibility, cybersecurity breaches and the loss of public trust in autonomous systems have made headlines.
  • Pages

    Services

    AdaCore offers training, on-site consulting and custom development services for all of our products to help make the most of our technology and expertise.
  • Pages

    Mentorship Services

    AdaCore is a diverse, passionate and commited team, and is looking for individuals who want to help our customers develop better quality software.
  • Documentation

    GNATcoll: GNAT Component Collection -- Core packages

    This is the documentation for the core packages of GNATcoll, a library providing a number of modules that can be reused in your own applications to add extra features or help implementation.
  • Articles

    Ada—The Language of Cost Savings?

  • Events

    Safety-Critical Systems Symposium

    AdaCore is exhibiting at this event.

  • Events

    Embedded World 2019

    AdaCore is exhibiting at this event.

  • Events

    Aerospace Tech Week - Avionics Expo

    AdaCore is exhibiting at this event and giving a talk on “Qualification strategy for an automatic code generator”

  • Videos

    Controlling Costs with Software Language Choice | VDC Research

  • Articles

    Halloween, Debugging, SPARK, and More

  • Press Releases

    AdaCore’s Annual Make with Ada Competition is Starting

    Over $8000 in cash and prizes for imaginative embedded systems projects in Ada or SPARK
  • Articles

    SSI: Continued Assurance from Requirements to Code

  • Articles

    Verifikation von Embedded Software durch Integration von Test und Beweis

  • Articles

    Ada Compiler Generates C Source

  • Articles

    So, How Secure are your Coding Practices? Ask AdaCore

  • Events

    Paris Open Source Summit

    AdaCore is exhibiting at this event

  • Articles

    Portable, reliable, and efficient concurrency: Ravenscar Ada tasking and the FACE safety profiles

  • Documentation

    Ada 95 Reference Manual

    This is the reference manual of Ada 95
  • Documentation

    Ada 2005 Reference Manual

    This is the reference manual of Ada 2005
  • Documentation

    Ada 2012 Reference Manual

    This is the reference manual of Ada 2012
  • Press Releases

    ci-tec Selects AdaCore’s GNAT Pro Ada Development Environment for Industrial Process Management & Control Application

    AdaCore software development and verification tools help ci-tec port and upgrade combustion chamber optimization product.
  • Press Releases

    AVIO Selects AdaCore’s GNAT Pro Assurance Toolsuite for European Space Agency Program

    Safety-critical on-board software for Vega-C launcher being developed in Ada, leveraging GNATemulator to expedite testing
  • Events

    FOSDEM 2019

    AdaCore will attend and present at FOSDEM 2019. In the Ada devroom, Nicolas Roche will present 'GSH: an Ada POSIX Shell to Speed Up GNU Builds on Windows' and Yannick Moy will present 'Proof of Pointer Programs with Ownership in SPARK'. In the RISC-V devroom, Fabien Chouteau will present 'Alternative languages for safe and secure RISC-V programming'.

  • Events

    Flight Software Workshop

    AdaCore sponsored this event and Steve Baird presented the talk 'Provably Safe Pointers for a Parallel World'.

  • Events

    SIGCSE 2019

    AdaCore will be exhibiting at this event. Booth #514.

  • Press Releases

    AdaCore Joins the RISC-V Foundation to Provide C and Ada Compilation Support

    GNAT Pro and GNAT Community toolchains available both for professionals and hobbyists
  • Articles

    AdaCore wird Mitglied der RISC-V Foundation

  • Articles

    Die Zeit ist reif, um formale Testmethoden auch im Mainstream einzusetzen

  • Articles

    AdaCore Joins The RISC-V Foundation To Provide C And Ada Compilation Support

  • Press Releases

    AdaCore enhances security-critical firmware with NVIDIA

    Programming languages Ada and SPARK help lower the cost of security-critical software development and verification
  • Pages

    AdaCore Tech Days Alabama 2019

    AdaCore presents the latest news and provide technical roadmaps for the company's product offerings - GNAT Pro, CodePeer, SPARK Pro, and QGen.
  • Books

    SPARK Ada for the MISRA C Developer

    MISRA C appeared in 1998 as a coding standard for C; it focused on avoiding error-prone programming features of the C programming language rather than on enforcing a particular programming style. The popularity of the C programming language, as well as its many traps and pitfalls, have led to the huge success of MISRA C in domains where C is used for high-integrity software. This success has driven tool vendors to propose many competing implementations of MISRA C checkers. Tools compete in particular on the coverage of MISRA C guidelines that they help to enforce, as it is impossible to enforce the 16 directives and 143 rules (collectively referred to as guidelines) of MISRA C. In particular, 27 rules out of 143 are not decidable, so no tool can always detect all violations of these rules without at the same time reporting "false alarms" on code that does not constitute a violation.

    However, static analysis technology is available that can achieve soundness without inundating users with false alarms. One example is the SPARK toolset developed by AdaCore, Altran and Inria, which is based on four principles:

    • The base language Ada provides a solid foundation for static analysis through a well-defined language standard, strong typing and rich specification features.

    • The SPARK subset of Ada restricts the base language in essential ways to support static analysis, by controlling sources of ambiguity such as side-effects and aliasing.

    • The static analysis tools work mostly at the granularity of an individual function, making the analysis more precise and minimizing the possibility of false alarms.

    • The static analysis tools are interactive, allowing users to guide the analysis if necessary or desired.

    This book presents the SPARK technology – the SPARK subset of Ada and its supporting static analysis tools – through an example-driven comparison with the rules in the widely known MISRA C subset of the C language.

    An on-line and interactive version of this document is available at AdaCore's learn.adacore.com site.

    By Yannick Moy
    Release 1.0, Feb 12, 2019

  • Articles

    Leveraging SPARK and Ada in Cutting-Edge Auto Systems

  • Articles

    Introducing RISC-V and RISC-V Tools

  • Events

    AdaCore Tech Days Alabama

    AdaCore will continue it's Tech Days event in Alabama.

  • Press Releases

    AdaCore V19 Product Release Expands Platform Coverage, Brings Performance Improvements and Functionality Enhancements

    Annual major release extends Ada ecosystem, ramps up C and C++ support
  • Articles

    Conduite automatisée : certaines puces-systèmes Nvidia vont migrer vers le RISC-V et les langages Ada et Spark

  • Press Releases

    AdaCore Extends Support for Wind River VxWorks

    AdaCore committed to long-term Ada, C, and C++ support on industry-leading RTOS
  • Videos

    A MISRA-C Developer’s Introduction to Program Proving in SPARK — Embedded World 2019

  • Papers

    Ada: Meeting Tomorrow’s Software Challenges Today

    A White Paper by AdaCore, February 2019

    In a report on the “Do’s and Don’ts for Software” [1], the Defense Innovation Board in the U.S. advises “Use modern languages and operating systems.... Treat software development as a continuous activity, adding functionality across its life cycle.” The Ada language fully supports these “do’s” with state-of-the-art features and a growing ecosystem, and is helping developers of critical cyber systems worldwide meet the most stringent software assurance requirements while reducing life cycle costs. For systems demanding reliable, secure and safe software, Ada continues to be the logical and cost-effective choice.

  • Papers

    Ada and SPARK: Beyond Static Analysis for Medical Devices

    The need for safe and secure software — including Medical Device software — is becoming more important as cybersecurity threats in the healthcare sector become more frequent and severe. Beyond increasing the reliability, safety and security of their software, Ada and SPARK programming language adopters are also looking at controlling and reducing costs. Hillrom migrated to Ada and SPARK to verify the safety of the code by formally proving some properties, and improving its efficiency by removing dynamic checks, all the while keeping development and verification costs down. Read the full case study to find out more.

  • Pages

    Tech Days Paris 2018

    AdaCore technical staff will present the latest news about the company's current and planned product offerings and activities at this free event in Paris.
  • Pages

    2018 Tech Days Boston Slides

    AdaCore presents the latest news and provide technical roadmaps for the company's product offerings - GNAT Pro, CodePeer, SPARK Pro, and QGen.
  • Press Releases

    AdaCore Announces Winners for Third Annual “Make with Ada” Competition

    Contest draws over 40 entrants; shows ease of using Ada and SPARK to develop reliable, safe, and secure software
  • Pages

    ASIS

    ASIS is a library that gives applications access to the complete syntactic and semantic structure of an Ada compilation unit.
  • Pages

    AdaCore and the Future Airborne Capability Environment

    The FACE™ approach is a government-industry initiative for reducing defense system life cycle costs through portable and reusable software components.
  • Articles

    Software security, a scientific overview

  • Press Releases

    AdaCore Now a Principal Member of The Open Group FACE™ Consortium

    Company increasing its level of membership and participation
  • Pages

    Medical

    AdaCore’s technology provides the assurance that medical device developers, regulators, doctors and patients need so they can focus on saving human lives.
  • Events

    RSSRail 2019

    AdaCore will be giving a tutorial and exhibiting at this event.

  • Events

    Frama C & SPARK Day

    AdaCore will be attending and co-leading this workshop.

  • Events

    Ada Europe 2019

    AdaCore will be exhibiting and presenting at this event.

  • Events

    RISC-V Workshop

    AdaCore will be exhibiting and presenting at this event.

  • Events

    VDA Automotive SYS Conference

    AdaCore will be exhibiting at this event.

  • Events

    AdaCore Tech Day - Paris

    AdaCore will be holding its annual Tech Day in Paris

  • Events

    AdaCore Tech Days - Boston

    AdaCore held its annual Tech Days in Boston

  • Events

    UK Space Conference

    AdaCore will be exhibiting at this event - booth D16.

  • Events

    High Integrity Software Conference

    AdaCore is co-organizing, sponsoring and will be exhibiting at this event.

  • Articles

    Maximum Security Vision: Securing the Future of Safe Autonomous Driving

  • Events

    The Open Group FACE™ Consortium F2F Meeting

    AdaCore co-sponsored this event with Collins Aerospace.

  • Press Releases

    Hex Five Adds MultiZone™ Security To The AdaCore Software Ecosystem

    Providing Ada Developers with a Robust Execution Environment for RISC-V Processors.
  • Events

    IEEE Secure Development Conference

    AdaCore will be speaking at this event

  • Events

    US Air Force FACE™ Technical Interchange Meeting

    AdaCore will be presenting “Verifying High-Assurance FACE™ Components with Ada and SPARK” and is also exhibiting at this event.

    The FACE™ TIM is an opportunity for Open Group FACE Consortium members to demonstrate their FACE certified and/or aligned products, present papers on utilization of the FACE Technical Standard, showcase efforts toward developing FACE applications for new war-fighting capabilities, and attend presentations from US Air Force leadership. Hundreds of Army, Navy, and Air Force personnel attend the yearly event, as well as other customer communities looking to learn more about the benefits of the FACE approach.

    AdaCore is a Principal in the FACE Consortium and participates actively in the definition of the FACE Technical Standard to ensure Ada’s role in the Safety capability sets.

  • Events

    RISC-V Summit

    AdaCore will be exhibiting at this event (Booth 310)

  • Events

    Flight Software Workshop

    AdaCore is a sponsor of this event

  • Press Releases

    Code Dx and AdaCore Partner to Provide an Ada Application Security Testing Toolsuite

    NORTHPORT AND NEW YORK, N.Y. – June 26, 2019 – Code Dx, Inc., provider of an award-winning application security management solution that automates and accelerates the discovery, prioritization, and risk management of software vulnerabilities, today announced its partnership with AdaCore, a trusted provider of software development and verification tools for the Ada, C, and C++ programming languages.
  • Events

    Getting Started with RISC-V - Paris

    AdaCore will be exhibiting at this event.

  • Events

    Software Product Assurance and Engineering Workshop

    AdaCore will be presenting "A Qualified Multitasking Solution for Spacecraft Software Development" at this conference organized by the CNES and the ESA.

  • Press Releases

    AdaCore Expands its Presence in the UK to Support Thriving Aerospace and Defence Industries

    PARIS &amp; NEW YORK &amp; BRISTOL, UK, 14 August 2019 - AdaCore, a trusted provider of software development and verification tools, today announced the opening of AdaCore Ltd,  which will serve as the company’s UK centre-of-excellence for the development of safety- and security-critical software tools.
  • Books

    GNAT: The GNU Ada Compiler

    GNAT: The GNU Ada Compiler

    June, 2004 Copyright (C) Javier Miranda and Edmond Schonberg

    Applied Microelectronics Research Institute University of Las Palmas de Gran Canaria Canary Islands Spain

    Computer Science Department New York University U.S.A.

    Also available here online.

  • Papers

    Lady Ada Mediates Peace Treaty in Endianness War

    There is no universal agreement on the order in which the successive bytes constituting a scalar value are stored. Some machines (so-called big-endian architectures) store the most significant byte first, while others (little-endian architectures) adopt the opposite convention. When porting an application across platforms that use different conventions, programmers need to convert data to the appropriate convention, and this may cause difficulties when exact memory layouts need to be preserved (e.g. for communication with legacy systems).

    This paper describes the features of the Ada language that help supporting programmers in these situations, identifies some of their shortcomings, and introduces two novel solutions: a code generation approach based on data representation modeling, and a new representation attribute Scalar Storage Order , allowing the byte order convention to be specified for a given composite data structure.

    This is a pre-copyedited version of a contribution that appeared in the proceedings of the Ada-Europe 2013 Reliable Software Technologies conference, published by Springer Verlag. The definitive authenticated version is available online via https://doi.org/10.1007/978-3-642-38601-5_5.

  • Press Releases

    AdaCore’s Fourth Annual Make with Ada Programming Competition Launches Today!

    Over $8K in cash and prizes to be awarded for the most innovative embedded systems projects developed using Ada and/or SPARK
  • Press Releases

    The High Integrity Software Conference Continues to Champion High-Assurance Software Development

    AdaCore and Altran today announce their renewed sponsorship of the annual High Integrity Software (HIS) Conference, taking place in Bristol on November 5th, 2019. Now in its sixth year, the event attracts leaders in industry and academia who share the common focus of producing high integrity software. This promises to be the pivotal event as we enter an age of digital dependency, and many aspects of our everyday lives rely on the correct behaviour of software-intensive electronic systems. The event addresses new, current and future challenges and continues to grow year on year. It welcome an international audience, with delegates from continental Europe to Japan. Recognising the need to engage new engineers on this key topic, there are special rates available for those at an early stage of their career.
  • Pages

    AdaCore — The First 25 years

    Adacore emerged as a software company in 1994 after a 15-year involvement of an NYU team in defining and implementing the then-new programming language Ada
  • Events

    Microchip's SPACE Forum 2019

    AdaCore will be exhibiting at this event. Microchip’s technical experts and partners will be presenting the most innovative space-related products, capabilities, and system solutions in this one-day technology forum. You will see demonstrations of how the interoperation of our latest products can accelerate your development time. You’ll also gain a comprehensive understanding of how Microchip’s Sub-QML and COTS-to-RT components help address the challenges of meeting system performance and reliability goals while also saving costs.

  • Press Releases

    European Space Agency Selects AdaCore’s Qualified Multitasking Solution for Spacecraft Software Development

    NEW YORK &amp; PARIS &amp; NEWPORT, Wales, September 24, 2019 - UK Space Conference - AdaCore, a trusted provider of software development and verification tools, today announced that the European Space Agency (ESA) has selected AdaCore to provide a qualified multitasking solution for spacecraft software development to support multiple ongoing and future ESA projects.
  • Documentation

    GNAT Studio User's Guide

    This is the GNAT Studio User's Guide. GNAT Studio is a complete integrated development environment that gives access to a wide range of tools and integrates them smoothly.
  • Documentation

    GNAT Studio Tutorial

    This document provides a guide through the major capabilities of the GNAT Studio by working on a code example: sdc, a simple desktop calculator..
  • Videos

    CodePeer — Advanced Static Analysis for Ada

  • Videos

    The GNATPro Toolsuite Integrated Development Environment for Ada, C, and C++

  • Articles

    Wind River Redefines Embedded Software Development with New VxWorks Release

  • Articles

    ESA wählt Adacores Multitasking-Lösung für die Raumschiff-Softwareentwicklung

  • Articles

    SPARK security into your system software

  • Videos

    NVIDIA — Securing the Future of Safety and Security of Embedded Software

  • Events

    ERTS 2020

    ERTS - Embedded Real Time Systems will celebrate its 10th edition from 29 to 31 January 2020 at Pierre Baudis Congress Center, Toulouse, France ! AdaCore will be sponsoring and exhibiting in the event.

  • Articles

    Learn to Use Ada and SPARK

  • Articles

    FIEEC Carnot Prize for Applied Research: Claude Marché “proves himself”

  • Press Releases

    AdaCore Introduces Support for C++ Embedded Environments

    GNAT Pro cross-environment handles standalone C++ and mixed-language embedded software development
  • Articles

    Functional Safety Development & Test Solutions

  • Papers

    Practical Application of SPARK to OpenUxAS

    This paper presents initial, positive results from using SPARK to prove critical properties of OpenUxAS, a service-oriented software framework developed by AFRL for mission-level autonomy for teams of cooperating unmanned vehicles. Given the intended use of OpenUxAS, there are many safety and security implications; however, these considerations are unaddressed in the current implementation. AFRL is seeking to address these considerations through the use of formal methods, including through the application of SPARK, a programming language that includes a specification language and a toolset for proving that programs satisfy their specifications. Using SPARK, we reimplemented one of the core services in OpenUxAS and proved that a critical part of its functionality satisfies its specification. This successful application provides a foundation for further applications of formal methods to OpenUxAS.

  • Events

    Embedded World 2020

    Extreme miniaturization coupled with increasingly higher computer performance, efficient communication of networked, often also mobile systems – the developers of embedded systems have to meet enormous requirements. The reliability of electronic systems, distributed intelligence, the internet of things and solutions for future themes such as e-mobility and energy efficiency are the main topics right at the top of the agenda for the embedded sector and industry.

    Each year the embedded world Exhibition&Conference in Nuremberg offers the embedded community the opportunity to obtain information about new products and innovations, enter into an exchange and to maintain and develop valuable contacts. Around 1.100 exhibitors are presenting state-of-the-art technology in all facets of embedded technologies, from construction elements, modules and complete systems through to operating systems and software, hard and software tools right up to services covering all aspects of embedded systems.

  • Events

    Aerospace Tech Week

    Cancelled due to COVID-19

  • Events

    Safety-Critical Systems Symposium (SSS'20)

    The Safety-Critical Systems Symposium in 2020 comprises three days of presented papers with an industrial focus, including keynote talks, submitted talks, updates from the SCSC working groups and a poster session. There is also a symposium banquet with an after-dinner speaker.

    The Symposium is for all of those working in the field of system and functional safety, including engineers, managers, consultants, regulators and assessors. It offers wide-ranging coverage of current safety topics, and a blend of academic research and industrial experience.

  • Papers

    ParaSail: A Pointer-Free Pervasively-Parallel Language for Irregular Computations

    ParaSail is a language specifically designed to simplify the construction of programs that make full, safe use of parallel hardware even while manipulating potentially irregular data structures. As parallel hardware has proliferated, there has been an urgent need for languages that ease the writing of correct parallel programs. ParaSail achieves these goals largely through simplification of the language, rather than by adding numerous rules. In particular, ParaSail eliminates global variables, parameter aliasing, and most significantly, re-assignable pointers. ParaSail has adopted a pointer-free approach to defining complex data structures. Rather than using pointers, ParaSail supports flexible data structuring using expandable (and shrinkable) objects implemented using region-based storage management, along with generalized indexing. By eliminating global variables, parameter aliasing, and pointers, ParaSail reduces the complexity for the programmer, while still allowing ParaSail to provide flexible, pervasive, safe, parallel programming for irregular computations. Perhaps the most interesting discovery in this language development effort, based on over six years of use by the author and a group of ParaSail users, has been that it is possible to simultaneously simplify the language, support parallel programming with advanced data structures, and maintain flexibility and efficiency.

  • Pages

    Holiday Card 2019

    Holiday Card 2019
  • Papers

    How to Succeed in the Software Business While Giving Away the Source Code — The AdaCore Experience

    by Benjamin M. Brosgol, AdaCore

    Open-source software, or, more accurately, Freely Licensed Open-Source Software (“FLOSS”), at first appears to present a dilemma when adopted as part of a business model. If users are allowed to access, modify and/or redistribute the source code, how does a company protect its intellectual property, and more fundamentally, sell something that can be easily and legally reproduced?

    AdaCore has faced this issue since the company’s inception in 1994. Its major commercial product, GNAT Pro Ada, is an Ada development environment based on the Free Software Foundation’s (FSF’s) GNU Compiler Collection (GCC). AdaCore has implemented an Ada compiler front end and companion run-time libraries and tools and has contributed these components to the FSF. In turn, the GNAT Pro Ada compiler incorporates the GCC back end for a variety of target architectures. Leveraging the GCC back end has enabled AdaCore to make Ada available on a wide range of platforms, both native and embedded, at a significantly reduced effort – indeed, that was the technical rationale for choosing GCC and a design goal of GCC itself. But the challenge of this approach is how to generate a sustained and profitable business. AdaCore's 25 years of FLOSS experience offers an explanation and “lessons learned”.

    ©2019 IEEE
    IEEE Software, Nov.-Dec. 2019, pp. 17-22
    Special Issue: Twenty Years of Open Source Software
    https://ieeexplore.ieee.org/document/8792964

  • Events

    FOSDEM'20

    FOSDEM is a free event for software developers to meet, share ideas and collaborate. Every year, thousands of developers of free and open source software from all over the world gather at the event in Brussels.

  • Events

    SIGCSE 2020

    Cancelled due to COVID-19

  • Events

    Webinar by Rob Tice at online event Scale UP 360° Automotive AI

    AdaCore will present at the biggest online Automotive event Scale Up 360° AUTOMOTIVE AI. Rob Tice will be giving a talk on "Beyond the boundaries of C: writing ASIL-4 software with verification-centric language SPARK Ada and Formal Proof".

  • Events

    Ada Europe 2020

    Canceled due to Covid-19

  • Events

    GNU Tools Cauldron 2020

    Cancelled due to COVID-19

  • Events

    ​NVIDIA’s GPU Technology Conference (GTC) - Silicon Valley 2020

    Quentin Ochem from AdaCore gave an online talk "Exterminating Buffer Overflows and Other Embarrassing Vulnerabilities with SPARK Ada on Tegra"

  • Videos

    Beyond the boundaries of C: writing ASIL-4 software with verification-centric language —SPARK Ada and Formal Proof

  • Events

    Frama-C & SPARK Days 2020

    Cancelled due to COVID-19

  • Pages

    AdaCore Tech Days Los Angeles 2020

    AdaCore presents the latest news and provide technical roadmaps for the company's product offerings - GNAT Pro, CodePeer, SPARK Pro, and QGen.
  • Press Releases

    AdaCore Toolchain for Ada, SPARK and C Now Qualified for ISO 26262 and IEC 61508

    NEW YORK &amp; PARIS, February 18, 2020 - AdaCore today announced that three of its signature software development/verification tools for Ada, SPARK and C have been qualified under the ISO 26262 and IEC 61508 functional safety standards. AdaCore has over two decades of certification experience in safety-critical domains such as avionics, space, and rail. By completing the qualification process for automotive and industrial standards, the company has shown that its high integrity technologies can meet the demanding assurance requirements of the software-intensive automotive industry.
  • Papers

    When Testing Is Not Enough

    The size and complexity of software in embedded systems are growing at an astonishing rate. From aircraft and automobiles to medical devices, home appliances, and our homes themselves, products that were once hardware-only are now cyber-physical: they rely on software for much of their functionality. And we rely on that software for the dependability of those systems, especially their safety and security. This increasing complexity is driving technology leaders to adopt formal methods.

  • Pages

    ISO 26262

    ISO 26262 is a functional safety standard for automotive systems and a derivative of the generic IEC 61508 standard for programmable electronic systems.
  • Pages

    IEC 61508

    IEC 61508 is an international standard for functional safety in E/E/PE systems and is the “umbrella” for domain-specific standards such as ISO 26262.
  • Documentation

    GNATcoll Bindings -- Syslog

    This is the documentation for GNATcoll binding to Syslog, the system logger on Unix systems. This provides a low level interface to syslog as well as a higher level interface to be used through the GNATCOLL. Traces system, from the GNATCOLL Core packages.
  • Documentation

    GNATcoll Bindings -- Readline

    This is the documentation for GNATcoll binding to the readline library, to provide support for interactive input from the user on terminals.
  • Documentation

    GNATcoll Bindings -- Iconv

    This is the documentation for GNATcoll binding to the Iconv library, to convert strings between encodings.
  • Documentation

    GNATcoll -- Database packages

    This is the documentation for DB (database) module of the GNAT Components Collection.
  • Pages

    AdaCore Technical Interchange Meeting 2020

    Attend the AdaCore Technical Interchange Meeting in Boeing, Mesa, AZ — March 5, 2020 – 9:00-11:00am
  • Press Releases

    AdaCore Announces Winners of Fourth Annual “Make with Ada” Competition

    A variety of unique submissions demonstrate the ease of learning and using Ada and SPARK in embedded applications
  • Papers

    Why use a commercially supported C/C++ toolchain?

    AdaCore recently extended its support of C and C++ toolchains and now supports not only native environments (such as Linux or Windows) but also cross ones such as VxWorks, embedded Linux, and even bare metal (C only at the time of this writing). In a world where most developers have access to a C/C++ toolchain that’s included with hardware or OS environments, this produces a question - what’s the added value of a commercially supported compiler for C and C++?

  • Articles

    Functional Safety on the Rise as ISO 26262 Takes Page from DO/178 Standards Book with Ada, Spark

  • Articles

    Qualifying the ISO 26262 Toolchain for Automotive Software Development

  • Pages

    COVID-19

    The spread of COVID-19 is challenging and changing the way business will be conducted. It will not, however, affect the way you work with AdaCore
  • Articles

    DO-178C meets the FACE Technical Standard: High assurance and reusability for airborne software

  • Articles

    Legacy Code in C mit Ada sicher aktualisieren

  • Pages

    AdaCore Tech Days Los Angeles 2020

    AdaCore presents the latest news and provide technical roadmaps for the company's product offerings - GNAT Pro, CodePeer, SPARK Pro, and QGen.
  • Pages

    AdaCore + NVIDIA Partnership

    AdaCore is partnering with NVIDIA to implement Ada and SPARK languages for select security-critical firmware in applications like autonomous driving
  • Events

    The Open Group FACE™ AND SOSA™ Consortia Technical Interchange Meeting (TIM)

    AdaCore is the premier sponsor of this event and CEO Franco Gasperoni will be presenting the Welcome Address.

    The Open Group and NAVAIR will host this 2nd annual joint FACE™ (Future Airborne Capability Environment) and SOSA™ (Sensor Open Systems Architecture) Consortia Technical Interchange Meeting. AdaCore is the Premier Sponsor of this year’s free, one-day, virtual event offering paper presentations by leading experts from government, industry, and academia on the use of the FACE Technical Standard and related business practices.

    This unique event offers a valuable opportunity to learn the latest developments in the FACE and SOSA communities. Attendees will discover new and practical technologies that greatly increase defense program efficiency, accelerate acquisition of the latest capabilities, and improve adaptability in currently fielded systems.

  • Events

    AdaCore Tech Day - Paris

    AdaCore has cancelled this year's Tech Day in Paris due to COVID-19.  Please check out our Product Roadmap 2020 Videos for information about the most recent updates.

  • Events

    AdaCore US Tech Day

    AdaCore has cancelled this year's US Tech Day due to COVID-19. Please check out our Product Roadmap 2020 Videos for information about the most recent updates.


  • Events

    DASIA (Data Systems in Aerospace)

    Postponed due to COVID-19

  • Articles

    The Future of Safe Programming; How Programming Languages Evolve to Reduce Risks

  • Pages

    Commercially Supported C and C++ Toolchains for Critical Software

    AdaCore’s GNAT Pro C and GNAT Pro C++ development environments mitigate the toolset-related risks that can jeopardize schedules and budgets.
  • Press Releases

    Electric Power Steering System Supplier JTEKT Selects SPARK Pro for Safety-Critical Automotive Software

  • Videos

    Confident Algorithms with Formal Proof Techniques

  • Articles

    Embedded Toolbox: Use Ada and Let the Compiler Do the Static Analysis

  • Articles

    Les méthodes formelles sont désormais incontournables pour vérifier complètement les logiciels critiques

  • Press Releases

    AdaCore’s Fifth Annual Make with Ada Programming Competition Launching July 31st

  • Articles

    Tech Talk: Portability And High Assurance For Airborne Software: The FACE™ Approach

  • Events

    RISC-V Global Forum 2020

    RISC-V is breaking down technical barriers and disrupting traditional microprocessor business models through global collaboration. The RISC-V Global Forum is our opportunity to engage across the community, from start-ups to multi-nationals, from students to luminaries, from deep technical talks to understanding industry momentum.

  • Pages

    What is DO-178C?

    RTCA DO-178C / EUROCAE ED-12C is an update to the DO-178B/ED-12B standard that governs the certification of software for airborne systems.
  • Pages

    What is DO-178B?

    DO-178B, officially RTCA DO-178B / EUROCAE ED-12B is a software certification standard for airborne systems on commercial aircraft.
  • Press Releases

    Major European Aerospace Company Chooses GNAT Pro Ada Targeted to Wind River’s VxWorks 6.x Cert RTOS on PowerPC

  • Pages

    Code of Conduct

    We expect this code of conduct to be followed by anyone who contributes to AdaCore-maintained community spaces or channels maintained by AdaCore.
  • Articles

    2020 Military & Aerospace Technology Innovators Awards announced for aerospace and defense achievement

  • Articles

    Development Software Handles High-Integrity Space Applications - LASP and The CLARREO Pathfinder

  • Events

    RTI Connext Conference 2020

    RTI ConnextCon 2020 is the world’s largest gathering of power Data Distribution Service (DDS) users. It will also serve as a great overview of the DDS standard for both current DDS users and non-DDS users alike.

    • October 26-27, 2020 (US/Americas)
    • October 28-29, 2020 (EMEA/APAC)
  • Events

    RISC-V Day Tokyo 2020

    RISC-V Days Tokyo is the largest RISC-V conference in Japan for suppliers, researchers, and government agencies. In 2020, it will be online so that both presenters, participants in shelter-in-place will be able to participate.

  • Events

    ScaleUp 360° Auto Vision

    AdaCore will present the webinar “Confident Algorithms with Formal Proof Techniques” as part of ScaleUp 360°Auto Vision - The digital event deep diving into Computer Vision and Sensor Fusion technologies for autonomous vehicle perception.


  • Events

    High Integrity Software: Continuing Innovation in the Face of Global Challenge

    The development of high integrity software-based systems is always challenging, and in current times it is an engineering discipline that has had to respond rapidly to a changing global environment. In this context, innovation has become even more essential as we respond to changes in the ways we work, changes in the tools we use on a day-to-day basis, and adapt the technologies we produce as we respond rapidly to changing market demands.

    Our three speakers from globally recognised companies will present their own perspectives on these challenges – the lessons learnt and how the situation will evolve for their organisations as we move forwards.

    AdaCore are co-organisers and sponsors of this conference with our partners, Altran.

  • Press Releases

    Hitachi Rail STS France Chooses AdaCore Software Development Environment for its New Rail Platform

  • Articles

    Securing military embedded systems is a giant challenge

  • Events

    High Integrity Language Technology (HILT) Workshop

    AdaCore is participating on both the organizing and program committees for this year's HILT international workshop on safe languages and technologies for structured and efficient parallel and distributed/cloud computing.

    This is the sixth in the HILT series of conferences and workshops, sponsored by ACM SIGAda, focused on the use of High Integrity Language Technology to address challenging issues in the engineering of highly complex critical software systems. HILT 2020 will focus on the growing importance of large-scale, highly parallel, distributed and/or cloud applications.

    The 2020 event will be virtually co-hosted with SPLASH 2020.

  • Events

    ESEC/FSE 2020

    At this year's ESEC/FSE event, AdaCore's Dr. Benjamin Brosgol will presenting his 2019 IEEE Software paper, "How to Succeed in the Software Business While Giving Away the Source Code: The AdaCore Experience."

    The ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) is an internationally renowned forum for researchers, practitioners, and educators to present and discuss the most recent innovations, trends, experiences, and challenges in the field of software engineering.

  • Videos

    TIM Welcome Address by Dr. Franco Gasperoni, CEO, AdaCore

  • Pages

    AdaCore Product Update 2020

    AdaCore presents the latest news and provide technical roadmaps for the company's product offerings. Watch the video presentations.
  • Pages

    GNAT Pro Product Update

    AdaCore presents the latest news and provide technical roadmaps for the company's product offerings. Watch the video presentations.
  • Pages

    CodePeer Product Update

    AdaCore presents the latest news and provide technical roadmaps for the company's product offerings. Watch the video presentations.
  • Pages

    GNATcoverage Product Update

    AdaCore presents the latest news and provide technical roadmaps for the company's product offerings. Watch the video presentations.
  • Pages

    GNAT Studio Product Update

    AdaCore presents the latest news and provide technical roadmaps for the company's product offerings. Watch the video presentations.
  • Pages

    SPARK Pro Product Update

    AdaCore presents the latest news and provide technical roadmaps for the company's product offerings. Watch the video presentations.
  • Articles

    ADS Member Spotlight – AdaCore

  • Articles

    Behind the lines: why real-time operating systems are growing in importance and how the different types can be used

  • Papers

    Recursive Data Structures in SPARK

    SPARK is both a deductive verification tool for the Ada language and the subset of Ada on which it operates. In this paper, we present a recent extension of the SPARK language and toolset to support pointers. This extension is based on an ownership policy inspired by Rust to enforce non-aliasing through a move semantics of assignment. In particular, we consider pointer-based recursive data structures, and discuss how they are supported in SPARK. We explain how iteration over these structures can be handled using a restricted form of aliasing called local borrowing. To avoid introducing a memory model and to stay in the first-order logic background of SPARK, the relation between the iterator and the underlying structure is encoded as a predicate which is maintained throughout the program control flow. Special first-order contracts, called pledges, can be used to describe this relation. Finally, we give examples of programs that can be verified using this framework.

  • Events

    RISC-V Summit 2020

    AdaCore will be sponsoring and exhibiting at this virtual event, which will highlight the continued rapid expansion of the RISC-V ecosystem, presenting both commercial offerings and exciting open-source developments.

  • Events

    Military Embedded Systems Webcast: Accelerating Avionics Design & Testing through FACE Conformance

    Boeing, in partnership with the US Army, AdaCore, CoreAVI, Presagis and Real-Time Innovations (RTI), will demonstrate an integrated FACE Commercial-off-the-Shelf (COTS) solution stack covering cockpit displays, graphics systems and data transport connectivity. This stack enables high mission capability using the world’s latest and most advanced avionics technologies designed to accelerate RTCA DO-178C DAL A safety certification and FACE conformance.

  • Articles

    SPARK und MISRA-C – Die Vorteile von Sprach-Subsets

  • Press Releases

    Security and Defence Contractor QinetiQ Selects AdaCore’s Mentorship Service to Upgrade to the Latest Version of the SPARK Technology

  • Events

    Military Embedded Systems Webcast: How To Enable the Intelligent Edge for Critical Avionics Software

    Modernization efforts that require consolidating multiple proven software systems onto a single intelligent edge platform are difficult. Fortunately, there are strategies that allow you to maintain your software integrity and partitioning while taking advantage of cutting edge software development technology. In this webinar, subject matter experts from Wind River and AdaCore will demonstrate how you can map your existing architecture to guest operating systems on hypervisors, by using Wind River’s Helix Virtualization Platforms and software development tools from the compiler experts at AdaCore.

  • Press Releases

    AdaCore Introduces GNAT Pro for the Wind River® Helix™ Virtualization Platform

  • Press Releases

    Consafe Logistics Selects AdaCore’s GNAT Pro for Critical Warehouse Control System Firmware

  • Pages

    Toyota and NVIDIA Focus on Zero Defect Software Development Mathematically

    Two prominent automotive manufacturers, JTEKT and NVIDIA, are working to meet stringent safety requirements by leveraging the Ada and SPARK languages.
  • Pages

    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
  • Papers

    SPARK 2014 Reference Manual - Release 2020

    SPARK is a programming language and a set of verification tools designed to meet the needs of high-assurance software development. SPARK is based on Ada, both subsetting the language to remove features that defy verification and also extending the system of contracts by defining new Ada aspects to support modular, constructive, formal verification.

    The SPARK Reference Manual is intended as a reference guide for users and implementors of the language. In this context, “implementors” includes those producing both compilers and verification tools.

    This is the SPARK Reference Manual for the Community 2020 release of SPARK.

  • Books

    Ada for the Embedded C Developer

    This course introduces you to the Ada language by comparing it to C. It assumes that you have good knowledge of the C language. It also assumes that the choice of learning Ada is guided by considerations linked to reliability, safety or security. In that sense, it teaches you Ada paradigms that should be applied in replacement of those usually applied in C.

    This course also introduces you to the SPARK subset of the Ada programming language, which removes a few features of the language with undefined behavior, so that the code is fit for sound static analysis techniques.

    This course was written by Quentin Ochem, Robert Tice, Gustavo A. Hoffmann, and Patrick Rogers and reviewed by Patrick Rogers, Filip Gajowniczek, and Tucker Taft.

  • Articles

    Top 10 military electronics stories of 2020

  • Videos

    AdaCore Product Update 2020

  • Events

    Embedded World 2021 Digital

    The embedded world Exhibition & Conference will take place this year as a completely digital event. Both the trade fair and accompanying conferences, the embedded world Conference and the electronic displays Conference, will be held as virtual formats under the name embedded world DIGITAL.

  • Articles

    Embedded Executives Talk Next Generation Military Avionics Systems

  • Articles

    The Place for MISRA C in Safe & Secure Programming - A Comparison with SPARK

  • Videos

    How To Enable the Intelligent Edge for Critical Avionics Software

  • Press Releases

    AdaCore Broadens its Cybersecurity Capabilities with the Acquisition of Componolit GmbH

  • Videos

    Using AdaCore's tools with VxWorks 653 3.x

  • Papers

    How to Develop Reliable Spacecraft Systems at Lower Cost with the Ada Programming Language

    When SEAKR Engineering decided to upgrade its mission-critical data recorder applications to a new hardware platform, they kept their software in Ada. To help them improve the efficiency and reliability of their Ada code, they upgraded their development environment to GNAT Pro.

  • Press Releases

    AdaCore Announces Winners of Fifth Annual “Make with Ada” Competition

  • Events

    Flight Software Workshop 2021

    AdaCore was a sponsor for this 14th annual Workshop on Spacecraft Flight Software. AdaCore Senior Software Engineer Tonu Naks gave a presentation on QGenV: Harnessing Qualified Code Generator for Model Verification.

  • Events

    Technical Symposium on Computer Science Education (SIGCSE)

    AdaCore was a Bronze Supporter for the 52nd annual Technical Symposium on Computer Science Education, organized by the ACM Special Interest Group on Computer Science Education (SIGCSE). On Thursday, March 18 from 4:15 PM - 5:30 PM EDT, Dr. Patrick Rogers, a member of AdaCore’s senior technical staff, hosted a 60-minute virtual meeting on “Learning systems programming, hard real-time programming and formal methods with good language support.” AdaCore also showcased its GNAT AcademicProgram.

  • Events

    The Open Group FACE™ and SOSA™ Consortia Technical Interchange Meeting (TIM)

    AdaCore is the Premier Sponsor of this one-day virtual Technical Interchange Meeting for government, academia, and industry experts.

  • Books

    AdaCore Technologies for FACE™ Software Developers

    AdaCore is a Principal Member of The Open Group’s Future Airborne Capability EnvironmentTM (FACE) Consortium. We have been actively involved with the FACE effort since 2012, participating in and contributing to both the Technical and Business Working Groups.

    Our objective in the FACE Consortium is to help FACE software suppliers meet assurance requirements for reliability, safety, and security while realizing the portability and reusability benefits that come from FACE conformance. Among the languages that are called out in the FACE Technical Standard – C, C++, Ada and Java – the one that best promotes high assurance coupled with code portability is Ada.

    As a software tool provider to the Aerospace and Defense community, we offer products that enable and encourage FACE software suppliers to use Ada for their applications. More specifically, AdaCore’s FACE related products include:

    • GNAT Pro Ada development environments targeted to RTOSes supplied by FACE Consortium members, such as Wind River’s VxWorks 653 and Lynx Software Technologies’ LynxOS-178;
    • Efficient run-time libraries that are distributed with our cross-compilation environments and have been deployed in avionics systems certified at the highest Design Assurance Levels (DALs) of software standards such as DO-178B/C; and
    • Static analysis tools including the formal methods-based and CWE-compatible SPARK Pro toolsuite, the CWE-compatible CodePeer deep static analyzer for Ada, and the GNATcheck coding standard verifier for Ada.

    This book summarizes AdaCore’s technologies and shows how they can help avionics suppliers develop and verify high-assurance FACE conformant software. The discussion is based on Edition 3.1 of the FACE Technical Standard and applies also to earlier versions.


  • Videos

    Verifying FACE Conformance of Ada Non-OSS UoCs

  • Articles

    Avionics Testing Is Meeting Complexity Challenges Head-On

  • Documentation

    Startup-gen User's Guide

    This page gives access to theStartup-gen documentation. Startup-gen generates startup files (crt0 and linker script) based on properties of the target device such as: architecture, memory layout, number of interrupts.
  • Videos

    Ada for the Embedded C Developer

  • Pages

    Thank you for your request

    Your request for product access has been submitted. An AdaCore representative will follow up with you shortly.
  • Articles

    Make with Ada 2021

  • Events

    Scale Up 360 OSS.5 Europe

    Scale Up 360 OSS.5 Europe is the leading digital event on Functional, Operational, and System Safety for L5 Autonomous Driving. Quentin Ochem, AdaCore's Business Development Lead, will give a presentation on Self-Verified Software.

  • Events

    Ada Europe 2021

    AdaCore's S. Tucker Taft will be a keynote at this year's 25th Ada‐Europe International Conference on Reliable Software Technologies (AEiC 2021). He and AdaCore co-authors will also be giving two talks on "Parallel Programming with Ada and OpenMP" and "Using Ada for model verification."

  • Events

    Space Tech Expo 2021

    Space Tech Expo Europe is the continent's major dedicated supply-chain and engineering event for manufacturing, design, test and engineering services for spacecraft, subsystems and space-qualified components. The exhibition and conference draw attendance from thousands of industry leaders, decision makers, engineers, specifiers and buyers to meet manufacturers across the supply chain for commercial, government and military space.

  • Events

    Military Embedded Systems, Expert Discussion: The FACE™ Technical Standard and Avionics Safety Certification

    AdaCore's Ben Brosgol participated on this panel of avionics software experts as they discussed the FACE Technical Standard.

  • Papers

    How the Analyzer can Help the User Help the Analyzer

    The automation offered by modern program proof tools goes hand in hand with the capability to interact with the tool when the verification fails. The SPARK proof tool tries to help the user by providing the right information, so that the user can help the tool complete the proof. In this article, we present these mechanisms and how they work concretely on a simple running example.

  • Events

    FOSDEM 2021

    FOSDEM is a free, two-day event organized for software developers to meet, share ideas and collaborate. The goal is to promote the widespread use of free and open source software. AdaCore engineers gave two talks this year. One on "Adding contracts to the GCC GNAT Ada standard libraries to strengthen analysis provided by formal verification tools," and one on "Proving heap-manipulating programs with SPARK."


  • Events

    ICFEM 2021

    The International Conference on Formal Engineering Methods (ICFEM) is an international leading conference series in formal methods and software engineering. Researchers and practitioners from industry, academia, and government, are encouraged to attend, present their research, and help advance state-of-the-art. AdaCore engineers presented a paper/talk on "Verification of Programs with Pointers in SPARK."

  • Events

    HCSS 2021

    The High Confidence Software and Systems Conference is a forum for the development of scientific foundations and innovative and enabling software and hardware technologies for the assured engineering of complex computing systems. AdaCore's Yannick Moy gave a talk on "How to Improve the Robustness of Auto-active Program Proof Through Redundancy".

  • Events

    F-IDE 2021

    AdaCore's Yannick Moy will be presenting a paper/talk on "How the Analyzer can Help the User Help the Analyzer" at this 6th Workshop on Formal Integrated Development Environment, which is affiliated with NASA Formal Methods 2021.

  • Events

    Collège de France

    AdaCore's Yannick Moy was invited by Xavier Leroy, Software Sciences Chair of the prestigious Collège de France, to give a talk on "Preuve auto-active de programmes en SPARK" (in French).


  • Articles

    Making software FACE-conformant and fully portable: Coding guidance for Ada

  • Articles

    Enforced Coding Using Ada Contracts

  • Articles

    Embedded Insiders: How Much Are You Willing to Pay for Bad Software?

  • Articles

    Embedded Toolbox: Prove It! Proofs Start Where Static Analysis Stops

  • Articles

    Ada for the Embedded C Developer (7-part series)

  • Articles

    Why3, la plateforme française de vérification des logiciels

  • Pages

    Disruptive Technology for Military-Grade Software

    Ada’s advantages are particularly visible in the areas of Reliability and Maintainability, which are succinctly described in this white paper.
  • Pages

    Terms and Conditions Applicable to AdaCore Products

    This page allows you to access the consolidated Terms and Conditions (T&C’s) applicable to each type of AdaCore services.
  • Papers

    Security-Hardening Software Libraries with Ada and SPARK

    When it comes to providing software assurance, SPARK, a formally provable subset of Ada, is the best weapon in the arsenal to ensure the absence of data-flow and runtime errors. Furthermore, SPARK offers mechanisms to prove key integrity properties and even complete functional proof of requirements. Regardless of the apparent benefits of using SPARK in safety-critical applications, there is still some reservation in adopting the technology over traditional languages like C and C++, which offer minimum software assurance. Instead, developers in many cases rely on heavy testing approaches with the hope that all the possible bugs will be captured before application deployment. Arguments in favour of such problematic approaches include a perceived steep-learning curve for adopting SPARK, and thus, an increase in production cost, and the assumption that SPARK will significantly negatively impact the execution time of an application. These are all perceptions mainly formed due to a lack of understanding the technology. This paper takes a quantitative approach, where SPARK is put under test, and relevant metrics, such as performance and development time, are recorded to demystify the impact of adopting SPARK and expose any areas that the technology can be further improved. To achieve this a relevant to the industry embedded benchmark suite written in C, the EMBENCH, is converted to Ada and SPARK, to prove the absence of runtime errors, which are well-known sources of security vulnerabilities. Furthermore, we share our valuable experiences on best practices for hardening software libraries using SPARK.

    Written by Kyriakos Georgiou, Paul Butcher and Yannick Moy

  • Events

    Aviation Forum

    At the Aviation Forum Hamburg, more than 750 decision-makers and experts from the aviation industry will meet to shape the new age of the aviation industry. Under the motto “Aviation Reloadednew strategies, technologies and partnerships will be discussed to meet the new demands on aviation. After facing the biggest crisis the aviation industry has ever experienced, the industry needs to reposition itself and rethink old structures to prepare thoughtfully for a fresh start.

  • Press Releases

    AdaCore Qualifies C Compiler for Alstom’s Safety-critical Railway Systems

  • Events

    Mi-V Virtual Summit Conference 2021

    We invite you to explore the Mi-V RISC-V® ecosystem during the first Mi-V Virtual Summit Conference. This event is a technology showcase that will bring together an esteemed group of innovators, academics, clients and collaborators.

    The Mi-V Virtual Summit Conference will deliver valuable information about solutions, hardware, tools and Intellectual Property (IP) that are available for the PolarFire® SoC FPGA family. As the industry continues to shift towards digital-only events, the Mi-V Virtual Summit Conference will deliver engaging and high-quality content from our Mi-V ecosystem partners.

  • Videos

    Engineering Self-Verified Software

  • Pages

    AdaCore + Airbus Day Registration

    As a result of a 15-year partnership, AdaCore is organizing for the first time a private event solely dedicated to technical staff at the Airbus Group.
  • Pages

    Pascal/Delphi Partnership

    Ada and its subset SPARK, a language inspired by Pascal, embedding capabilities to describe specification, implementation and verification in one platform
  • Papers

    Software Safety Certification Q&A

    An interview with AdaCore President, Cyrille Comar on Software Safety Certification

  • Pages

    Thank you for your call request.

    Your request for a call has been submitted. An AdaCore representative will follow up with you shortly.
  • Videos

    JTEKT — Application of SPARK to Steering System Software Development

  • Papers

    Classification for Avionics Capabilities Enabled by Artificial Intelligence

    Artificial Intelligence extended the limits considerably of what is technically feasible. In avionics, stakeholders are also pushing AI. However, research results are usually confronted with restrictions in avionics: Safety and certification are often assumed as showstoppers. This is not quite precise, since stakeholders are approaching each other. We collect the demand for AI applications in avionics and develop a classification scheme for these. For each identified AI class the status quo is compiled. We conclude with an assessment of AI readiness and the identification of necessary research effort for AI in avionics.

  • Events

    Webinar: Application of SPARK to steering system software development

    In this webcast, Shinya Yoneki from JTEKT introduces the use of Formal Verification Tool Suite, SPARK Pro for JTEKT's electric power steering system, along with concrete examples.

    The size of the software used in automobiles is continuously increasing as autonomous driving technology is being introduced and there is a need to ensure higher safety and reliability. Therefore, it is important to achieve higher quality while adhering to the development schedule. Formal verification can be used as a development method to detect defects early in the software development process and reduce the man-hours required for testing and rework.

  • Events

    High Integrity Software: Assuring security and safety for critical software applications

    The conference will focus on cyber safety for embedded systems (ie. the confluence of safety and security), and how innovations in testing and the application of formal methods can help to achieve those objectives. Talks will address themes including the state of the art in software testing, using fuzz testing in a civil avionics security certification context (DO-326A), and applying innovative techniques such as formal methods to achieve cybersecurity.

    This year, the conference will feature a keynote talk about the work of the National Cybersecurity Centre in the domain of embedded and critical systems.

  • Events

    UK Space Conference 2021

    The UK Space Conference is well established as the most important and influential event for space in the UK. For the sixth time, this biennial event will bring together the UK and international space community from across government, industry and academia to exchange ideas, share plans, develop relationships and seek inspiration to thrive in the new space age.

    AdaCore is a premium exhibitor at this event.

  • Events

    Convention Systematic 2021

    We'll be part of the Convention Systematic 2021 as champions du Pôle 2021 (French only)

  • Events

    Software Product Assurance Workshop

    Vasiliy Fofanov will present the paper Adapting and Re-validating A Qualified Generic Multitasking Solution: A Return on Experience

  • Papers

    Layered Formal Verification of a TCP Stack

    The Transmission Control Protocol (TCP) at the heart of TCP/IP protocol stacks is a critical part of our current digital infrastructure. In this article, we show how an existing professional-grade open source embedded TCP/IP library can benefit from a formally verified TCP reimplementation. Our approach is to apply formal verification to the TCP layer only, relying on validated models of the lower layers on which it depends. We translated the TCP user functions into SPARK and modeled asynchronous events with ghost code. This enabled the detection of two bugs in the original C implementation related to memory management and concurrency. The translated code has been proven to be free of run-time errors and to respect the transitions of the TCP state machine, specified in RFC 793. For the lower layers, we used symbolic execution with KLEE to formally verify the contracts used in SPARK to model the corresponding behavior. This work is a step towards a more secure implementation for TCP.

    This paper is copyrighted by IEEE, and reproduced here with their permission.

  • Articles

    Comment AdaCore s'impose toujours plus dans l'avionique et les systèmes embarqués

  • Events

    Aerospace Techweek 2021

    AdaCore will be exhibiting in Aerospace Techweek 2021 and Eric Perlade will present "Making FACE™ Units of Conformance Fully Portable: Coding Guidelines for Ada” on November 3rd.

  • Papers

    Guidelines and Considerations Around ED-203A / DO-356A Security Refutation Objectives

    This report offers further guidelines and considerations to the security refutation objectives described within the following two technically identical documents:

    • ED-203A “Airworthiness Security Methods and Considerations”, European Organisation for Civil Aviation Equipment (EUROCAE)

    • DO-356A “Airworthiness Security Methods and Considerations”, Radio Technical Commission for Aeronautics (RTCA)

    Refutation is described within ED-203A / DO-356A as follows:

    Refutation acts as an independent set of assurance activities beyond analysis and requirements. As an alternative to exhaustive testing, refutation can be used to provide evidence that an unwanted behavior has been precluded to an acceptable level of confidence. NOTE: Refutation is also known as Security Evaluation in some contexts.” [ taken from ED-203A / DO-356A].

    The main part of the report summarizes how refutation activities fit into the associated Airworthiness Security Process. In addition, a series of guidelines and considerations for including a Refutation Test Plan within a Plan for Security Aspects of Certification (PSecAC) is presented. Annexes are then provided to cover additional guidelines for specific refutation activities. This version of the report includes Annex A, which covers “Fuzz Testing”.

  • Articles

    Paul Butcher on Fuzz Testing

  • Papers

    Disruptive Technology for Military-Grade Software

    SPARK is a software development technology (programming language and verification toolset) specifically designed for engineering ultra-low-defect-level applications, for example where safety and/or security are key requirements. SPARK Pro is the commercial-grade offering of the SPARK technology developed by AdaCore, Altran and Inria.

    SPARK has an extensive industrial track record. Since its inception in the late 1980s it has been used worldwide in a range of industrial applications such as civil and military avionics, air traffic management/control, railway signaling, cryptographic software, cross-domain solutions, medical devices and automotive.

    The SPARK language is a large subset of Ada 2012. SPARK includes as much of Ada as is possible/practical to analyze formally, while eliminating sources of undefined and implementation- dependent behavior. SPARK includes Ada’s program-structure support (packages, generics, child libraries), most data types, safe pointers, contract-based programming (subprogram pre- and postconditions, scalar ranges, type/subtype predicates), Object-Oriented Programming, and the Ravenscar subset of tasking features.

  • Papers

    How to Increase Military Software Innovation and Longevity through Reuse

    Software is a critical element in almost any military application and can be a differentiator that provides strategic and tactical advantages on the battlefield. However, it also has to meet set challenges – it has to be long-lived, reliable, and easily maintainable to match the longevity of the military platform on which it is deployed. That means it has to account for both innovation and longevity from the start, and be able to work consistently and effectively over decades without the risk of failure.

    Yet, in long-lived military projects, software is often being rewritten from scratch, pushing up costs and delaying overall completion. For example, the U.S. Government Accountability Office (GAO) highlighted software delays as a key factor in the F-35 fighter jet modernization program failing to meet deadlines to move to full-rate production. This is no outlier – 10 of the Department of Defense’s (DoD’s) 15 major IT projects are behind schedule.

    It’s therefore time for a new approach – one that applies lessons learned from previous military software development and focuses on military grade, open source, standards-based solutions that reuse and rejuvenate existing assets. This method will deliver the innovative software capabilities that military projects require – on time and on budget.

  • Pages

    AdaCore Cybersecurity Center

    At AdaCore we pledge to timely analyze vulnerabilities in our products and disclose them in a way that balances the interests of our customers & community.
  • Papers

    Making FACETM Units of Conformance Fully Portable: Coding Guidance for Ada

    Source code portability of airborne software is the keystone of the Future Airborne Capability Environment (FACETM) approach and is realized through well-defined application program interfaces (APIs) and widely used industry standards such as IDL, POSIX, and ARINC-653. However, full portability of a Unit of Conformance (UoC) requires more than usage of common APIs and standards. It entails adhering to programming language-specific restrictions to ensure that the UoC has an equivalent effect when ported to a new platform. This paper, geared to UoC developers and project managers, offers guidance for Ada and its formally analyzable SPARK subset. It shows how to deal with vendor-specific or optional language features, how to avoid implementation dependencies, and how to manage target platform dependencies. By adopting the recommended stylistic conventions (most of which can be enforced by static analysis tools) developers of airborne software can use Ada or SPARK to achieve full portability for their FACE UoCs while also realizing the assurance benefits (extensive static checks that catch errors early) that these languages provide.

  • Books

    AdaCore Technologies for Space Systems Software

    Software development presents daunting challenges when the resulting system needs to operate reliably, safely, and securely while meeting hard real-time deadlines on a memory-limited target platform. Correct program execution can literally be a matter of life and death, but such is the reality facing developers of space software systems.

    This book explains how the Ada and SPARK programming languages, together with AdaCore’s products, can reduce system life cycle costs and facilitate conformance with applicable software certification / qualification standards.

  • Pages

    Thank you for signing up

  • Pages

    GNAT Dynamic Analysis Suite

    A package of testing and coverage tools for analyzing the dynamic behavior of Ada code.
  • Papers

    Streamlining Software Development with Certifiable Code Generation

    Model-based engineering for critical systems.

    In an increasingly digital age, safety-critical software is becoming an ever more vital component of military and aerospace projects. Given its importance, any issues with writing and certifying this software can negatively impact overall project success, increasing risk and causing potential delays.

    As the role of safety-critical software grows, so does its complexity and the time required to create and test code. That’s why many projects now use a model-based design approach to programming. Essentially, this allows teams to create digital models of the software to be built, which can be run, checked, and refined through simulations – all before any code is written.

    One of the key benefits here is that modeling languages allow domain experts, rather than software engineers, to write software specifications. As domain specialists understand more deeply what they want the safety-critical system to achieve, this ensures a closer fit to real-world requirements.

    However, while this helps with the early stages of a project, often these models are then handed over to programmers to manually create code that matches the behavior of the original model. This adds time to the process and introduces the potential for programming errors that then need to be spotted and fixed later in the project, leading to potential delays.

  • Videos

    Getting Started with GNATtest

  • Press Releases

    ENYSE Selects AdaCore’s Flagship Software Development Platform to Build Innovative Railway Signaling Systems

  • Videos

    HIS 2021: Fuzzing for Airworthiness Security

  • Pages

    Java log4j Vulnerability Update

    We have investigated the Java log4j logging facility documented as CVE-2021-4428 and also known as log4shell. We can confirm that AdaCore is not affected.
  • Videos

    Tech Days 2021

  • Pages

    Certification & Qualification

    AdaCore tools meet the highest levels of domain-specific software certification standards, offering both feature functionality and safety assurance.
  • Pages

    GNATfuzz

    Fuzz testing is a technique used to uncover coding errors and security loopholes in software systems and networks.
  • Videos

    Developing FACE™ conformant software in Ada

  • Press Releases

    AdaCore Launches GNAT Dynamic Analysis Suite

  • Security Advisories

    Bidirectional Unicode characters in Ada source code

  • Papers

    Making Proofs of Floating-Point Programs Accessible to Regular Developers

    Formal verification of floating-point computations remains a challenge for the software engineer. Automated, specialized tools can handle floating-point computations well, but struggle with other types of data or memory reasoning. In this article, we show how generic deductive verification tools based on general-purpose SMT solvers can be used to verify different kinds of properties on floating point computations up to bounds on rounding er- rors. The demonstration is done on a computation of a weighted average using floating-point numbers, using an approach which is heavily based on auto-active verification. We use the general-purpose tool SPARK for formal verification of Ada programs based on the SMT solvers Alt-Ergo, CVC4, and Z3 but it can in principle be carried out in other similar languages and tools such as Frama-C or KeY.

  • Press Releases

    AdaCore’s GNAT Pro Assurance Development Environment Reinforces Security Support

  • Events

    Flight Software Workshop

    AdaCore is a regular sponsor of this annual workshop on spacecraft flight software. This year, we also gave a technical presentation "System-to-Software Integrity: from SysML to Simulink to Code” and a sponsor presentation on "Dynamic Memory Management with Ownership in Rust and SPARK"

  • Events

    SIGCSE 2022

    AdaCore was an exhibitor at this year's SIGCSE Technical Symposium on Computer Science Education promoting our GNAT Academic Program (www.adacore.com/academia) to a global audience of educators and researchers.

  • Events

    TSOA-ID

    AdaCore attended this year's Tri-Service Open Architecture Interoperability Demonstration - a single-day Technical Interchange Meeting and Expo focusing on Modular Open Systems Approach (MOSA) principles and innovations.

  • Events

    AAAA - Army Aviation Mission Solutions Summit

    AdaCore will be attending the AAAA - Army Aviation Mission Solutions Summit, an annual event where the entire Army aviation community gathers to focus solely on Army aviation issues.

  • Events

    AUVSI XPONENTIAL 2022

    AdaCore will be attending this international event dedicated to the advancement of uncrewed systems, robotics, and autonomy.


  • Events

    Showcase for Commerce

    AdaCore will be attending this nationally renowned business and industry trade show and defense contracting exhibition.

  • Events

    FACE™ and SOSA™ Technical Interchange Meeting (TIM)

    AdaCore will be exhibiting at this one-day event hosted by the U.S. Air Force. Technology Interchange Meetings (TIM) allow DoD, Industry, and Academia to collaborate on Research and Engineering technology challenges.

  • Events

    Aerospace Tech Week Americas

    AdaCore will be exhibiting at Aerospace Tech Week's inaugural event in the Americas. This conference and exhibition will offer an exclusive focus on the Americas developments for the commercial, defense, and bizjet aerospace tech sectors.

  • Events

    HILT Workshop 2022

    AdaCore is a sponsor and will be actively participating in this year's HILT Workshop. Held every two years and sponsored by SIGAda, the workshop focuses on the use of High Integrity Language Technology to address challenging issues in the engineering of highly complex critical software systems. This year's event will be held in Ann Arbor, Michigan, in conjunction with the 2022 Automated Software Engineering conference (ASE'22).

  • Events

    GAP Workshop

    This workshop is exclusively for GNAT Academic Program (GAP). Members will share information regarding successful teaching methods and research projects, even student projects. AdaCore engineers will also provide updates on Ada, SPARK, related resources, and our community efforts.


  • Events

    CYBERUK

    CYBERUK is the UK Government’s flagship cyber security event which AdaCore will be attending to demonstrate expertise in military-grade cyber-secure system design at exhibition booth A68.

  • Events

    ERTS 2022

    Join AdaCore at the 11th edition of ERTS, which will take place at Diagora Congress in Toulouse.

    AdaCore will be exhibiting and presenting “Dynamic Memory Management in Critical Embedded Software”, hosted by Claire Dross, Cyrille Comar, Yannick Moy and Florian Giltcher from Ferrous Systems.


  • Customer Stories

    Team Tempest Advanced Combat Air Systems Development

    As part of the Tempest future combat air system program, BAE Systems will be using the VxWorks 653 platform, a part of Wind River Studio, and associated DO-178C DAL B safety certification evidence packages, and AdaCore's GNAT Pro Assurance as part of ongoing technology demonstration project work.
  • Pages

    GAP Workshop Registration 2023

    Register for the free GAP Workshop on June 21, 2023
  • Events

    Ada Europe 2022

    The 26th Ada-Europe International Conference on Reliable Software Technologies (AEiC 2022) will take place in Ghent, Belgium in dual mode, with a solid core of in-presence activities accompanied by digital support for remote participation. The conference schedule comprises a journal track, an industrial track, a work-in-progress track, a vendor exhibition, parallel tutorials, and satellite workshops.

  • Articles

    Avionics Software Testing w/Ben Brosgol and Paul Butcher

  • Articles

    Podcast on Fuzz Testing for Safe and Secure Software w/ Paul Butcher

  • Articles

    Software Reuse/FACE, guest editorial by Ben Brosgol

  • Articles

    Making software FACE-conformant and fully portable: Coding guidance for Ada (page 20)

  • Pages

    Public Ada Training

    Live lectures from expert instructors and hands-on workshops using AdaCore's latest GNAT technology.
  • Papers

    Dynamic Memory Management in Critical Embedded Software

    Memory management has always been a delicate issue in critical embedded software because memory is often a scarce resource and many of the typical software errors jeopardizing the integrity of the execution of the software are related to memory mismanagement. Furthermore, critical software has had a tendency to grow in size and complexity in recent years, because it is using more and more complex algorithms in the critical parts of a system. The push towards autonomous mobility is a good example of the drivers for complexity reaching the most critical parts of software controlling such systems. This added complexity requires added flexibility in memory management that is not compatible with the traditional memory management techniques used for critical embedded software. In this paper we will first go over the traditional memory management limitations and the reasons behind them, we will then explore possibilities for going beyond them while being able to provide a high level of guarantees of correctness with regard to memory usage.

  • Press Releases

    Rheinmetall Air Defence extends the use of AdaCore's safety-critical software development tools for advanced air defense system

  • GNAT Community Downloads

    Download GNAT Community Edition

  • GNAT Community Downloads (More)

    GNAT Community Downloads (More)

  • Papers

    The Work of Proof in SPARK

    Since Ada targets safety-critical programs, many features of the language introduce safety nets in the form of language-mandated checks. Even if compile-time verification is preferred to runtime verification whenever possible, many of these checks are still done dynamically, an exception being raised in case of violation.

    The addition of contracts in Ada 2012 follows a similar trend, as a violation causes an exception to be raised when the code is compiled with assertions enabled. The SPARK tool aims at statically verifying that language-mandated checks and the user-written contracts can never fail at runtime.

    In this article, we give insights on how the tool works in practice and what are the most important challenges as of today.

  • Papers

    How Masten Space Systems is Using Ada and SPARK to Land on the Moon’s South Pole

    When Masten Space Systems was awarded a NASA contract to land scientific payloads on the Moon, the company chose to work with AdaCore’s mission-critical flight control software development and verification tools for its XL-1 Lunar Lander spacecraft. Masten Space Systems will use AdaCore’s the Ada and SPARK programming languages and AdaCore’s GNAT Pro integrated development environment and SPARK Pro static analysis verification tools in the exciting exploration project.

    To learn how AdaCore can help build your space systems, please contact info@adacore.com.

  • Papers

    IPESOFT: Delivering reliable, long-lived energy and industrial systems with Ada and AdaCore

    When IPESOFT was looking to develop its core real-time D2000 industrial automation platform, it knew that choosing the right development language and software tools would be crucial to the success of the platform and the company’s overall business growth. The solution needed to be reliable, secure, high performance, and easy and efficient to maintain over the long-term. Ultimately, IPESOFT chose AdaCore’s GNAT Pro and the Ada language to develop its D2000 platform. As a result, the company has successfully completed D2000 implementations in over 2,000 successful projects and has expanded into six countries.

  • Papers

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

    Semiconductor manufacturing has some of the most exacting needs when it comes to performance and reliability, requiring millisecond-level precision and the ability to cost-effectively produce billions of smaller and smaller devices every year. That’s why ITEC, one of the major semiconductor manufacturing equipment and automation providers, chose Ada as its programming language to develop its critical control software.

  • Customer Stories

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

    Semiconductor manufacturing has some of the most exacting needs when it comes to performance and reliability, requiring millisecond-level precision and the ability to cost-effectively produce billions of smaller and smaller devices every year. That’s why ITEC, one of the major semiconductor manufacturing equipment and automation providers, chose Ada as its programming language to develop its critical control software.
  • Papers

    Raising the Reliability of Scientific Space Exploration

    How Ada is helping the Laboratory for Atmospheric and Space Physics minimize risk, reduce cost, and assure reliable control of software used for spacecraft and instrument operations.

  • Customer Stories

    Raising the Reliability of Scientific Space Exploration

    How Ada is helping the Laboratory for Atmospheric and Space Physics minimize risk, reduce cost, and assure reliable control of software used for spacecraft and instrument operations.
  • Documentation

    GNAT DAS User's Guide

    This is the user documentation for GNAT DAS (Dynamic Analysis Suite), a package comprising GNATcoverage, a DO178-capable structural coverage analysis toolset; GNATtest, a unit test harness generator; and GNATfuzz, a tool for automating dynamic testing on Ada code, performing test case generation and discovery of software vulnerabilities through fuzzing.
  • Papers

    NVIDIA: Adoption of SPARK Ushers in a New Era in Security-Critical Software Development

    What's Inside

    This case study will examine:

    • The challenges faced by companies like your own in confronting increasingly hostile cybersecurity environments and how NVIDIA is tackling this to overcome a scarcity in expert software security resources

    • Learn why NVIDIA made the “heretical” decision to abandon C/C++ and adopt SPARK as its coding language of choice for security-critical software and firmware components and the impact this had

    • The advantages of using the SPARK for security- and safety-critical coding applications

    • How NVIDIA's tried and tested approach to ramping up their use of SPARK for critical component development can help your business

    • The benefits NVIDIA has gained through their adoption of SPARK

    • Why many of NVIDIA’s early SPARK skeptics have now become SPARK evangelists

    • NVIDIA’s recommendations for would-be SPARK adopters

    • See first-hand how you can adopt SPARK to establish and demonstrate assurance against cyberattacks and critical system failures

    And more…

  • Customer Stories

    Adoption of SPARK Ushers in a New Era in Security-Critical Software Development

    As one of the world's most trusted names in high-performance computing, security is essential to NVIDIA’s brand. With cybersecurity risks rising across the board, the company took an ambitious path to examine its software development methodology and find a more measurable solution. Ultimately, it chose to abandon C/C++ and adopt SPARK as its coding language of choice for verifying its most security-critical software and firmware components.
  • Press Releases

    AdaCore Joins Rust Foundation as Silver Member

  • Pages

    GNAT Static Analysis Suite

  • Documentation

    SPARK 2014 Toolset User's Guide

    This guide is aimed at getting new users up and running with the SPARK 2014 tools.
  • Documentation

    SPARK 2014 Reference Manual

    This is the reference manual for the SPARK 2014 language and lists all evolutions to the language.
  • Pages

    Metric Computations

  • Events

    Embedded World 2023

    AdaCore is exhibiting at Embedded World 2023 from March 14th to 16th in Nuremberg, Germany in partnership with Ferrous Systems. Visit us in Hall 4 at Booth 4-148 to discuss your high integrity software needs.

  • Pages

    Case Studies

    AdaCore has decades of experience providing tools and services to customers for applications with demanding software safety and security requirements.
  • Pages

    RecordFlux

  • Events

    SIGCSE Technical Symposium

    AdaCore will be exhibiting at SIGCSE, one of the largest academic shows dedicated to teaching resources related to software and hardware. Visit us at Booth 417 to learn about AdaCore's GNAT Academic Program and the benefits of using Ada and SPARK within an academic setting.

  • Events

    Flight Software Workshop

    AdaCore is a sponsor/exhibitor of this annual workshop on spacecraft flight software. We are also sponsoring a presentation by LASP at the University of Colorado on Adamant - A New Mission-Critical Flight Software Framework Written in Ada. Stop by our on-site kiosk to learn about AdaCore's long history of providing tools and expertise to the space industry.


  • Press Releases

    AdaCore Launches RecordFlux Technology to Enable the Development of Provable, Secure Communication Protocols

    AdaCore, a trusted provider of software development and verification tools, today announced the launch of its new RecordFlux technology, designed to ease the development and security of binary communication protocols. The technology comprises a Domain Specific Language (DSL) to precisely describe complex binary data formats and communication protocols, and a toolset to verify specifications and generate provable SPARK code that can be executed on a target CPU.
  • Pages

    GAP Workshop Registration 2022

    Register for the free GAP Workshop on June 21, 2022
  • Documentation

    Roadmap

    This is the road map of AdaCore products.
  • Papers

    NVIDIA: Using RecordFlux and SPARK to Implement SPDM for Secure Computing

    One of the basic requirements for enterprise platform security is device attestation: trustworthy evidence of a device’s identity and security properties. The industry standard Security Protocol and Data Model (SPDM) addresses this need, defining message formats and session behaviors that device suppliers can implement for attestation.

    This paper explains how AdaCore partnered with NVIDIA to capture and implement a subset of the SPDM 1.1.0 specification, using AdaCore’s RecordFlux product in conjunction with the SPARK/Ada programming language and the SPARK Pro toolsuite. The project successfully demonstrated that these technologies can address the vulnerabilities that communication protocols and complex data formats can bring, and the SPDM library that the project produced will be integrated into the firmware of microcontrollers and microprocessors that NVIDIA designs

  • Papers

    Conflict-detection technology takes to the skies

    The User Request Evaluation Tool developed by a team that included Lockheed Martin and AdaCore is conflict-detection technology that is said to save time, fuel, and money while also helping to ensure safe aircraft separation.

  • Papers

    BAE Systems Eurofighter Typhoon

    BAE Systems are using the GNAT Pro development environment for host Ada compilation in the development of software for the Eurofighter’s mission computers.

  • Papers

    MDA - Canadian Space Arm

    MacDonald Dettwiler (MDA) chose open-source GNAT Ada 95 from Ada Core Technologies to develop control software for the Mobile Servicing System (MSS), an essential com- ponent of the International Space Station (ISS).

  • Events

    High Confidence Software and Systems Conference

    AdaCore is a sponsor of this year's HCSS event and will be presenting a paper on Bridging the Gap Between Protocol Specification and Program Verification. HCSS focuses on new scientific and technological foundations for the assured engineering of complex computing systems.

  • Events

    Showcase for Commerce

    AdaCore is a sponsor of this year's Showcase for Commerce event - a nationally renowned business and industry trade show and defense contracting exhibition.

  • Events

    GAP Workshop

    Exclusively for GNAT Academic Program (GAP) members, our annual GAP Workshop provides a forum for members to share information regarding successful teaching methods and research projects, even student projects. AdaCore engineers also provide updates on Ada, SPARK, related resources, and community efforts.


  • Events

    FACE™ and SOSA™ Army Technical Interchange Meeting

    AdaCore will be exhibiting at this two-day event hosted by the U.S. Army. Technology Interchange Meetings (TIMs) allow DoD, industry, and academia to collaborate on research and engineering technology challenges. This year's event will be held in conjunction with the MOSA Industry and Government Expo and Summit.

  • Press Releases

    AdaCore Supporting BAE’s Apprenticeship Programme

    AdaCore, a trusted provider of software development and verification tools, today announced it has committed books, resources, and training in support of BAE Systems’ engineering apprenticeship programme, demonstrating its role as a dedicated partner and its commitment to the advancement of high integrity software.
  • Events

    High Integrity Software Conference 2023

    AdaCore is co-organizing, sponsoring, and exhibiting at this year's High Integrity Software Conference.

    The mission of HISC is to share challenges, best practice and experience between software engineering practitioners. The conference features talks from industrial and academic specialists which disseminate experience and knowledge of important techniques and methods that are applicable across industry sectors.

  • Events

    Ada Europe

    The Ada Europe conference schedule comprises a journal track, an industrial track, a work-in-progress track, a vendor exhibition, parallel tutorials, and satellite workshops.

    AdaCore is sponsoring this event and will be giving two talks:

    • Patrick Rogers will present "An Update On the Tasking Profiles in Ada 2022"
    • Paul Butcher will present " ‘Security Hardening Ada Programs through Innovative Fuzz Testing"
  • Events

    Ada Deutschland Workshop

    AdaCore is sponsoring this years Ada Deutschland Workshop, the workshop will look at making processes and systems safe in artificial intelligence and machine learning. The opportunities and challenges of AI processes in real use will be discussed from the point of view of industrial practice and the user, as well as from the point of view of science and research.

  • Security Advisories

    Potential memory corruption issue with GNAT.Regexp

  • Security Advisories

    Alignment on a tagged type may cause invalid deallocation

  • AdaCore Digest

    March 2023

  • AdaCore Digest Landing Page

    AdaCore Digest

  • Security Advisories

    Memory corruption in GNAT.Sockets.Get_Host_By_Name

  • Documentation

    GPR2 User Manual

    GPR2 is a library for parsing GNAT project files. It is meant as a building block for integration into other tools requiring GPR file parsing.
  • Documentation

    GNAT Tracker 4 User's Guide

    This is the manual for using GNAT Tracker 4.
  • AdaCore Digest

    June 2023

  • Documentation

    Using GNU GCC 13

    This is the main user documentation for GCC, the GNU Compiler Collection.
  • Papers

    Interview with AdaCore's Space Systems Software Expert, Eric Perlade

    Space applications are either safety critical or mission critical, and most have hard real-time constraints. Guiding a launcher or delivering positioning data requires precision and high reliability. This makes Ada not only suitable for space applications but a very good fit. See our interview with Technical Account Manager, Eric Perlade, on AdaCore and the Space Sector.

  • Papers

    Software Improvements: Using Ada to Implement a Secure Electronic Voting System

    Electronic election systems need to be demonstrably secure in order to ensure the protection of votes, the privacy of voters, and the prevention of interference. That’s why Software Improvements selected the Ada 2012 programming language and AdaCore’s GNAT Pro Ada development environment to upgrade the Australia Capital Territory’s Electronic Voting & Counting System (eVACS®), a public-facing system that demands a high level of security.

  • Pages

    GNAT Pro for Rust

  • Press Releases

    AdaCore Announces GNAT Pro for Rust

    AdaCore’s flagship development environment enables certifiable high-integrity Rust embedded software development
  • Papers

    Application of SMT in a Meta-Complier

    Building a compiler for a programming language is a notoriously hard task, especially when starting from scratch. That’s why we developed Langkit, a meta-compiler which allows language designers to focus on the high-level aspects of their language. In particular, the specification of type systems is done in a declarative manner by writing equations in a high-level logic DSL. Those equations are then resolved by a custom solver embedded in the generated compiler front-end whenever a code fragment of the target language needs to be analyzed. This framework is successfully used at AdaCore to implement name and type resolution of Ada, powering navigation in IDEs and enabling development of deep static analysis tools. We discuss the implementation of our solver, and how a recent switch to using a DPLL(T) solver backend with a custom theory allowed us both to address long-standing combinatorial explosion problems we had with our previous approach, but also to gain new insights in how to emit human-readable diagnostics for type errors.

  • Documentation

    Ada 2022 Reference Manual

    This is the reference manual of Ada 2022
  • Articles

    Adamant: A Soon-to-be Open Source, Mission Critical Flight Software Framework Written in Ada

  • Events

    GNU Tools Cauldron 2023

    AdaCore will be sponsoring the GNU Tools Cauldron this year.

    The purpose of this workshop is to gather all GNU tools developers, discuss current/future work, coordinate efforts, exchange reports on ongoing efforts, discuss development plans for the next 12 months, developer tutorials and any other related discussions.


  • Customer Stories

    Digital Security by Design driving investment in the automotive sector and embedded systems

    The Digital Security by Design (DSbD) programme from UK Research and Innovation (UKRI) is transforming digital technology and creating a more resilient, and secure foundation for a safer future. Across the current DSbD ecosystem, industry and academia are discovering the benefits of porting and refactoring their code to the Morello prototype platform. AdaCore are involved in the initiative via the GE Aerospace primed Edge Avionics project
  • Documentation

    GNAT SAS User's Guide

    This is the main documentation for GNAT SAS, a static error detection tool that automatically identifies possible programming errors and verifies logical correctness, without relying on labor-intensive run time testing.
  • Documentation

    GNAT SAS Tutorial

    This document provides a guide through the major capabilities of GNAT SAS inside GNAT Studio by working on a code example: sdc, a simple desktop calculator.
  • Pages

    GNAT Dynamic Analysis Suite (DAS)

    Using dynamic analysis suites is a rich subject matter, with many specificities due to the large variety of codebases and team workflows that exist.
  • IT Security Alerts

    Potential ServiceNow Vulnerability Investigation (KB1553688)

  • Events

    SPARK for Embedded and Systems Programming Webinar

    Discover Enhanced Software Security with SPARK Pro! Dive into our exclusive webinar featuring Yannick Moy, and learn about the cutting-edge features of SPARK Pro with live demonstrations on pointer ownership, function contracts, and secure type casting.

  • AdaCore Digest

    November 2023

  • Press Releases

    AdaCore Announces the First Qualification of a Rust Compiler

    AdaCore Announces the First Qualification of a Rust Compiler
  • Pages

    Cookie Policy

    AdaCore cares about your privacy and enables you to choose the types of cookies you allow us to use when you visit our website.
  • Papers

    Latitude Adopts Ada and SPARK for Light Launcher Software in New Space Industry

    In the competitive New Space industry, ingenuity, reliability, and cost-effectiveness are paramount factors. When Latitude embarked on creating their cutting-edge small satellite launcher, Zephyr, they recognized the importance of selecting the right programming language and development tools to support their efforts. After evaluating a number of candidates, Latitude settled on Ada and its formally verifiable SPARK subset. Ada and SPARK were judged to have the best support for sound software engineering practice, thus reducing life cycle costs, while meeting real-time embedded systems performance and predictability requirements. Based on their successful experience, Latitude plans to expand its use of Ada and SPARK on future projects and sees these technologies as key enablers.

  • Documentation

    gnatsetup Documentation

    This is the manual for using gnatsetup.
  • Events

    SPARK Pro for Proven Memory Safety

    Discover how to detect runtime errors and ensure memory safety

  • Videos

    SPARK Pro for Embedded and Systems Programming

  • Documentation

    GNAT Metrics Documentation

    Documentation for the GNAT Metrics tool, which can be used to compute various program metrics. It takes an Ada source file as input and generates a file containing the desired metrics data as output.
  • Pages

    GNAT Pro for C/C++

  • IT Security Alerts

    DNSSEC and DMARC Compliance at AdaCore

  • Events

    Embedded World 2024

    AdaCore is attending Embedded World 2023 from April 9th to 11th in Nuremberg, Germany. The embedded world Exhibition & Conference provides a global platform and a place to meet for the entire embedded community. It offers unprecedented insight into the world of embedded systems, from components and modules to operating systems, hardware and software design, M2M communication, services, and various issues related to complex system design.


  • Events

    Army Aviation Mission Solutions Summit

    Army Aviation Mission Solutions Summit

    Join AdaCore at the Army Aviation Mission Solutions Summit, an annual event where the entire Army aviation community gathers to focus solely on Army aviation issues.

  • Events

    CYBERUK

    AdaCore will be co-exhibiting with Digital Security by Design at CYBERUK - the UK Government’s flagship cyber security event.

  • Events

    Showcase for Commerce

    AdaCore will be attending this nationally renowned business and industry trade show and defense contracting exhibition.


  • Events

    ERTS 2024

    AdaCore will be exhibiting and presenting at the 12th edition of the Embedded Real-Time Systems European Congress (ERTS), which will take place at Diagora Congress in Toulouse.

  • Events

    SIGCSE 2024

    AdaCore will exhibit at this year's SIGCSE Technical Symposium on Computer Science Education promoting our GNAT Academic Program (www.adacore.com/academia) to a global audience of educators and researchers.

  • Papers

    LatenceTech: Innovating Network Tools

    In the context of the evolving telecommunications industry, characterized by the emergence of 5G and a surge of connected devices in IoT, LatenceTech, founded in Montreal, Canada, by former Ericsson senior executive Benoit Gendron, identified a specific need for specialized network tools focusing on precise latency measurement. “This precision is essential for the functionality of applications such as autonomous vehicles and connected robotics. Current technologies, including Ping, ICMP, and even advanced protocols like TWAMP (co-developed by Cisco), still do not meet this requirement entirely.” To address this, Gendron’s team deployed monitoring agents into client networks, explicitly focusing on measuring and managing network latency. This approach extends traditional methods to a strategy that balances data analysis and performance optimization. The objective is to redefine performance metrics by emphasizing the quality of network experience rather than relying solely on conventional, quantitative data metrics.

  • Videos

    Memory Safety with Formal Proof

  • Papers

    Co-Developing Programs and Their Proof of Correctness

    We’re excited to announce that the Communications of the ACM has published a paper on SPARK: “Co-Developing Programs and Their Proof of Correctness”. The paper provides a comprehensive and up-to-date presentation of SPARK, including: an overview of the programming language and its design goals; an explanation of what it means to co-develop a program and its proof of correctness; and approaches to practical, incremental adoption that allow at-scale application to industrial, high-integrity systems.

  • AdaCore Digest

    February 2024

  • Trust and Transparency

    Third Party Services Storing Customer Confidential Information

  • Trust and Transparency

    AdaCore Security Policy

  • Press Releases

    Battery Ventures Announces Strategic Investment in AdaCore to Propel the Future of High Integrity Software Development

    Battery Ventures, a global, technology-focused investment firm, today announced a significant investment in AdaCore, a leader in providing software development tools for safety- and security-critical systems. This strategic partnership will catalyze AdaCore's expansion, positioning the company as the go-to source for high-integrity, software-development tooling.
  • IT Security Alerts

    CVE-2024-3094

  • Events

    High-Integrity Technology Update

    Discover insights into AdaCore’s technology roadmap now and in the future. This session will cover:

    • New software platforms, new hardware targets + new languages and profiles

    • New Cybersecurity updates

    • User stories from NVIDIA and Latitude

  • Events

    Ada Europe - Ada Developers Workshop

    The Ada Developers Workshop is co-located with the 28th Ada-Europe International Conference on Reliable Software Technologies (AEiC 2024). The Workshop aims to create an informal yet dynamic platform for developers in the Ada community to meet, share insights, and present their latest projects or project updates, using the Ada programming language and Ada-related technology such as SPARK. Topics will range from community advocacy all the way to technical presentations.

  • Events

    HISC 2024

    AdaCore is co-organizing, sponsoring and exhibiting at this year’s High Integrity Software Conference.

    The mission of HISC is to share challenges, best practice and experience between software engineering practitioners. The conference features talks from industrial and academic specialists which disseminate experience and knowledge of important techniques and methods that are applicable across industry sectors.

  • Videos

    High Integrity Technology Update | April 2024

  • Pages

    AdaCore Tech Day Paris 2024

    Join us in Paris and learn about the latest advancements in high-integrity software from AdaCore experts.
  • Videos

    Proving Software Security with SPARK Pro

  • Pages

    AdaCore Tech Days Alabama 2019

    AdaCore presents the latest news and provide technical roadmaps for the company's product offerings - GNAT Pro, CodePeer, SPARK Pro, and QGen.
  • Videos

    How to run Ada and SPARK code on NVIDIA GPUs and CUDA

  • Papers

    Elevate Security Confidence with Memory Safe Hardware and Software

    GNAT Pro for CHERI enhances memory safety in modern systems and eradicates many memory-related vulnerabilities. It also provides a complete Ada toolchain to build secure applications executing on Arm Morello, a Capability Hardware Enhanced RISC Instructions (CHERI) CPU. Enhancements to the GNAT Pro GCC and LLVM bare-metal Ada runtimes bring automated CHERI pure-capability memory allocators and other novel security features to the developer, permitting new security-by-design paradigms to systems development.

  • Press Releases

    AdaCore Showcase Secure Avionics by Design at CYBERUK

    AdaCore, a leader in high-assurance, safe, and secure software toolchains, is set to stand out at CYBERUK by showcasing its unique approach to Secure Avionics by Design (SAbD).
  • Documentation

    IDE Release Notes

    Release notes
  • Documentation

    GNAT Release Notes

    Release notes
  • Documentation

    GNAT SAS Release Notes

    Release notes
  • Documentation

    SPARK 2014 Release Notes

    Release notes
  • Events

    Rust Paris 2024

    AdaCore will be speaking at Rust Paris, a conference for Rust developers and users focused on applications of the language and its tools.

  • Events

    Farnborough International Airshow 2024

    AdaCore will be attending the Farnborough International Airshow 2024, which will host leading innovators from the aerospace, aviation and defence industries and beyond.

  • Events

    Paris Tech Day 2024

    Join us in Paris and learn about the latest advancements in high-integrity software from AdaCore experts at our annual tech day.

  • Press Releases

    AdaCore Research Proves Novel Solution for "Security by Default."

    In an age of increasing security breaches and cyberattacks, the need for robust and comprehensive security mechanisms within embedded real-time systems is paramount.
  • Documentation

    Using GNU GCC 14

    This is the main user documentation for GCC, the GNU Compiler Collection.
  • Press Releases

    AdaCore supports the Safety-Critical Rust Consortium

    AdaCore is thrilled to be part of the Safety-Critical Rust Consortium alongside The Rust Foundation, Arm, Ferrous Systems, OxidOS, HighTec EDV-Systeme GmbH, TrustInSoft, Veecle, and Woven by Toyota. The primary objective of this group will be to support the responsible use of the Rust programming language in safety-critical software — systems whose failure can impact human life or cause severe environmental or property harm.
  • Pages

    Executive Team

    The AdaCore team includes experts on the Ada language and GNAT Pro technologies, representing hundreds of years combined programming experience.
  • Press Releases

    New Venue Augments High Integrity Software Conference

    This year, the High Integrity Software Conference (HISC) will move to a new, larger venue, the International Convention Centre (ICC) Wales. The mission of HISC is to share challenges, best practices, and experience between software engineering practitioners. The conference features talks from industrial and academic specialists who disseminate their experience and knowledge of essential techniques and methods applicable across industry sectors.
  • Documentation

    GNAT DAS Release Notes

    Release notes
  • Documentation

    Libadalang Release Notes

    Release notes
  • AdaCore Digest

    July 2024

  • Documentation

    RecordFlux Language Reference

    RecordFlux is a toolset for the formal specification and generation of verifiable binary parsers, message generators and protocol state machines.
  • Documentation

    RecordFlux User's Guide

    RecordFlux is a toolset for the formal specification and generation of verifiable binary parsers, message generators and protocol state machines.
  • Press Releases

    Celebrating 30 years of AdaCore

    For 30 years, AdaCore has provided the essential tools for building reliable, safe, and secure software. Throughout these decades, the Ada programming language and freely licensed open-source software have been integral to AdaCore's mission.
  • Press Releases

    AdaCore announces its participation in the Safety-Critical Harsh Environment Micro-processing Evolution (SCHEME) project.

    AdaCore is excited to announce its participation in the SCHEME research project. Rolls-Royce has assembled a world-class consortium of UK industry and academia to deliver the next generation of high-integrity processing platforms for use in aerospace and other harsh environments.
  • Security Advisories

    Certificate hostname check is missing when using secure connection

  • Documentation

    GNATFormat

    GNATFormat User's Guide
  • Security Advisories

    Ada Web Server does not use Crypto Secure Pseudo Random Number Generator

  • Documentation

    GNAT Pro for Rust User's Guide

    This guide describes how to install GNAT Pro for Rust, as well as how to build, run, and debug native, cross-compiled, and mixed-language applications.
  • Documentation

    GNAT Pro for Rust Release Notes

    Release notes
  • Papers

    deepsense.ai: Copilot for Ada programming language to boost developer productivity

    The Copilot for Ada programming language project aimed to research and develop a proof-of-concept code completion tool and evaluate its performance on the Ada code generation task. Its idea is to boost Ada software developers’ productivity by providing intelligent code completions and suggestions, improving the pace of task automation, and saving significant amounts of time on repetitive and boilerplate code.

  • Pages

    High Integrity Software Conference 2024

    The High Integrity Software conference shares challenges, best practices and experiences between software engineering practitioners.
  • Press Releases

    Rapita Systems showcases AdaCore’s GNAT Pro for Rust at HISC

    Rapita Systems will demonstrate the integration of their RapiCover Zero and RapiTime Zero tools with AdaCore’s GNAT Pro for Rust next week at the High Integrity Software Conference (HISC). The integration will show how structural coverage and execution time metrics, including worst-case execution time, can be collected during on-target tests of safety-critical code written in Rust.
  • Documentation

    h2ads User's Guide

    h2ads is a tool to generate Ada bindings from C headers.
  • Papers

    Should I choose Ada, SPARK, or Rust over C/C++?

    Explore the advantages of Ada, SPARK, and Rust over C/C++ for high-integrity software. This paper highlights the safety, security, and efficiency of each language, covering ecosystems, community support, and adoption costs. Discover the best fit for your projects to reduce errors and boost software integrity. Download now for strategic insights.

  • Pages

    High Assurance Software Solutions for the Automotive Industry

    Do you need to meet ISO 26262 qualification requirements? AdaCore’s development tools provide solutions for guaranteeing the safety of automotive software.
  • Events

    Embedded World Europe

    AdaCore will be exhibiting at Embedded World Europe in Nuremberg, Germany on 11 - 13 March 2025. Meet us at Booth 4-148 to discover demonstrations and talk to our experts about high-integrity technologies including Ada, SPARK, C/C++, Rust and more.

  • Documentation

    25 Release Notes

    25 Release notes for GNAT Pro, GNATDAS, GNATSAS, libadalang and SPARK.
  • Papers

    Memory Safety in Ada, SPARK, and Rust

    Explore how Ada, SPARK, and Rust address critical memory safety challenges in our latest whitepaper. Memory safety issues account for over 70% of security vulnerabilities in major tech systems, making robust solutions essential. This paper discusses common bugs like out-of-bounds writes and null pointer dereferences, and demonstrates how the unique features of these programming languages significantly reduce risks and enhance system reliability. Discover how adopting these memory-safe languages can fortify your software against pervasive security threats, enabling you to develop complex systems with greater confidence and security. Download now to learn more.

  • Articles

    Ensuring Robust, Resilience Cyber Security for Civil Aircraft

  • Articles

    Comparing Rust, C, C++, Ada and SPARK.

  • Articles

    Why Commercial Rust Software is Critical for Critical Solutions

  • Articles

    Hacking the Linux Kernel in Ada - Part 1

  • AdaCore Digest

    November 2024

  • Articles

    Hacking the Linux Kernel in Ada - Part 2

  • Articles

    Making DO with Safety Standards

  • Pages

    Introduction to Formal Verification with SPARK

    Learn about what SPARK is, how SPARK works, and see how SPARK can be applied to a M.A.R.S. Rover to prove safety!
  • Articles

    Hacking the Linux Kernel in Ada - Part 3

  • Papers

    Security by Default - CHERI ISA Extensions coupled with a security-enhanced Ada runtime

    In an age where security breaches and cyberattacks have become increasingly prevalent, the need for robust and comprehensive security mechanisms within embedded real- time systems is paramount. In this paper, we propose a novel solution to enforce fault-detection and increase security assurance: “Security by Default”, specifically combining Capability Hardware Enhanced RISC Instructions (CHERI) ISA microprocessor extensions with a CHERI pure-capability compliant Ada runtime. We present case studies showing how combining memory-safe hardware with memory-safe software results in a mutualistic layered approach to security and increases assurance of embedded real-time systems. We argue that this satisfies regulatory security verification objectives outlined in standards like the “Airworthiness Security Process Specification” (DO-326A/ED-202A[1] [2]).

  • Press Releases

    AdaCore to Sponsor Safety-Critical Rust Consortium Evening Social

    The Rust Foundation is an independent non-profit organization dedicated to stewarding the Rust programming language, nurturing the Rust ecosystem, and supporting the set of maintainers governing and developing the project.
  • Articles

    Ensuring software safety in the automotive industry

  • Documentation

    Alire for GNAT Pro Documentation

    This is the manual for Alire for GNAT Pro.
  • Press Releases

    SPARK and Rust Take Center Stage for AdaCore at Embedded World 2025

    AdaCore, a leader in high-integrity software development tools, is excited to announce its participation in Embedded World 2025, which will take place from March 11th to 13th in Nuremberg, Germany. This year, AdaCore will showcase its cutting-edge solutions for safety and security-critical embedded systems, with a special focus on SPARK and Rust technologies.
  • Pages

    Website Information

    AdaCore.com website information
  • Events

    Army Aviation Mission Solutions Summit

    Meet AdaCore at Booth 3015 at the Army Aviation Mission Solutions Summit, an annual event where the entire Army aviation community gathers to focus solely on Army aviation issues. Speak to your Account Manager to set up a meeting with our team.

  • Events

    What's New in GNAT Pro: Key Features and Roadmap

    Learn about our 25 release including highlights of key features - plus a taste of our roadmap.

    Featuring expert presentations on:

    • Toolchain and Targets
    • Rust
    • GNAT fuzz (Dynamic Analysis Suite)
    • GNATformat (User Experience)
    • GNATcheck (Static Analysis Suite)
    • Vscode (User Experience)
    • Ada Language Features
    • Roadmap: AI and Innovation
  • Security Advisories

    Insecure defaults in AWS.Client when linked with GnuTLS

  • Events

    Public Ada Training

    For software professionals new to the Ada programming language, live, hands-on training with AdaCore’s expert instructors.

  • Events

    Public Ada Training

    For software professionals new to the Ada programming language, live, hands-on training with AdaCore’s expert instructors.

  • Events

    High Integrity Software Conference 2025

    AdaCore are co-sponsors, co-organizers and exhibitors at the High Integrity Software Conference.

    HISC features high-quality content from experts in industry and academia who disseminate their knowledge of important and innovative techniques and methods that software engineers can apply in practice across industry sectors.

    HISC will return on 13 November 2025. Registration opens on 31 March.

  • AdaCore Digest

    March 2025

  • Videos

    What’s New in GNAT Pro: Key Features and Roadmap

  • Articles

    Securing the future: How SPARK and ISO 26262 ensure safe autonomous vehicles

  • Articles

    Ensuring automotive software safety: How formal verification and ISO 26262 reduce risk and recalls

  • Articles

    Cybersecurity in connected vehicles: Learn supply chain best practices

  • Press Releases

    Rapita embraces Rust via AdaCore partnership

    AdaCore is well-known for its support of high-integrity embedded development. When a new language, Rust, emerged and started making claims about memory safety and minimal footprint, it was only a matter of time before it found its way into the AdaCore family.
  • Articles

    Rust celebrates 10th anniversary

  • Articles

    Let's write a safety monitor for a Mars Rover!

  • Articles

    Should I choose Ada, SPARK or Rust over C/C++?

  • Articles

    CHERI on Top: AdaCore’s Hardware ‘Fix’ for Legacy C/C++ Code

  • Articles

    Ada and the FACE approach: Enabling high-assurance, portable software for defense systems

  • Papers

    MISSION CRITICAL RUST: Managing Memory

    Pointer errors have plagued software developers for decades. Rust’s innovative and expressive approach helps make pointers safe and efficient. Pointers have been a staple of programming languages since the earliest days of computing, serving two purposes:

    • Indirection: a means to share (rather than copy) data values within a program. This can be implicit, for example by passing a variable as a “by reference” parameter, or explicit through syntax for reference creating / dereferencing (such as “&x” and “*p” in C).

    • Dynamic allocation: a means to construct and manipulate data structures (linked lists, trees, graphs, …) that can grow and shrink during program execution. However, with power comes danger, and pointers can compromise both safety and performance. This paper investigates the challenges that pointers bring and explains how Rust meets these challenges.

    Rust’s approach requires programmers to think about pointers in a new way, but the effect is memory safety / early detection of pointer errors and efficient performance, with the expressiveness of a general-purpose data structuring facility.

  • Pages

    GNAT Pro Webinar - What’s New: Key Features and Roadmap

    Learn all about AdaCore’s 25 release including highlights of the latest key features - plus a taste of what’s coming in 26.0.
  • Documentation

    Ada & SPARK extension for VS Code User's Guide

    The user guide for Ada & SPARK extension for Visual Studio Code. This extension provides support for the Ada and SPARK programming languages in VS Code.
  • Events

    Ada Europe

    AdaCore is sponsoring the 29th edition of the Ada-Europe International Conference on Reliable Software Technologies (AEiC 2025), held in Paris. On Thursday 12th June at 14:00, AdaCore’s Claire Dross, Joffrey Huguet and Johannes Kanig will give a presentation on "Reasoning about Subprogram Termination in SPARK" at AEiC 2025. Get in touch at info@adacore.com to meet our team at the conference.

  • Events

    Webinar: Introduction to Formal Verification with SPARK

    Discover how to Prove Security and Safety for Embedded and Systems Software. Learn about what SPARK is, how SPARK works, and see how SPARK can be applied to a M.A.R.S. Rover to prove safety during this webinar hosted by AdaCore’s Head of Product and Innovation, Tony Aiello.

  • Events

    ASEE

    AdaCore will exhibit from Booth 417 at the American Society for Engineering Education (ASEE) conference in Montreal, Canada. We will showcase this year’s Capstone projects from AdaCore’s GNAT Academic Program (also known as GAP). Get in touch at info@adacore.com to meet our team at the conference or express interest in joining GAP.

  • Events

    Rust Paris

    AdaCore is a silver sponsor at this year’s Rust Paris. Get in touch at info@adacore.com to meet our team at the conference.

  • Events

    AdaCore Tech Day Denver

    Join high-integrity software engineers from across North America for AdaCore Tech Day in Denver. Attend technical briefings, watch live demos and engage in conversations with other software engineers. Get answers to all your questions about today's software development landscape from our experts and learn where the future of critical software is headed.

  • Events

    AdaCore Tech Day Munich

    Join high-integrity software engineers from across Europe for AdaCore Tech Day in Munich. Attend technical briefings, watch live demos and engage in conversations with other software engineers. Get answers to all your questions about today's software development landscape from our experts and learn where the future of critical software is headed.

  • Articles

    Software at the Wheel

  • Articles

    Building Trust on the Tracks

  • Press Releases

    Ada and SPARK enter the automotive ISO-26262 market with NVIDIA.

    High-integrity software tooling experts, AdaCore, are delighted to announce the introduction of the Ada and SPARK programming languages into the automotive market. Together with their partner NVIDIA, they are set to publish an off-the-shelf reference process, allowing others to follow their lead.
  • Pages

    Navigating Mars with Rust

    Learn why everyone’s talking about Rust and explore this language’s impressive capabilities.