1374 search results for
- All
- Homepage
- Articles
- Documentation
- Pages
- Press Releases
- Events
- Newsletter
- Customer Stories
- Books
- Papers
- GAP Member Projects
- Ada Gems
- Videos
- Security Advisories
- GNAT Community Downloads
- GNAT Community Downloads (More)
- AdaCore Digest
- AdaCore Digest Landing Page
- IT Security Alerts
- Trust and Transparency
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 toolsPages
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 systemsPress 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 softwarePress 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 assurancePress Releases
AdaCore Releases GNAT Pro 17 Development Environment for SYSGO’s PikeOS RTOS
AdaCore/SYSGO Partnership Fosters Spread of Embedded AdaPress Releases
AdaCore Publishes Handbook on DO-178C/ED-12C Guidance
Free booklet shows how AdaCore qualified tools can reduce costs of certifying airborne softwarePress Releases
AdaCore’s CodePeer Officially Registered as CWE-Compatible
Detects buffer overflow and other dangerous software errorsPress Releases
Winners Announced for First Annual “Make with Ada” Programming Competition
ARM embedded systems projects demonstrate Ada’s benefits for reliable, safe and secure softwarePress 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 AdaPress 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 toolsPress 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 softwarePress Releases
Ada 2012 Language Standard Corrigendum Approved by ISO
Ada 2012 Language Standard Corrigendum Approved by ISOPress Releases
AdaCore Releases GNAT Pro 7.4
New version of Ada Development Environment highlights annual major release of company product linePress Releases
AdaCore Releases SPARK Pro 16
Formal verification toolset helps reduce certification effort for safety-critical and high-security systemsPress Releases
French Agency DGA Selects AdaCore’s GNAT Pro with SQUORE Technology
Two-year project designed for auditing and certifying military software initiativesPress 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 SystemsPress 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 honorPress 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 softwarePress 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 WorkbenchPress Releases
SPARK Going to the Moon
Vermont Technical College writing flight software for Lunar IceCube, will use GNAT Pro and SPARKPress 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 filesPress Releases
AdaCore Releases GNAT Pro 7.3
New version of Ada Development Environment highlights annual major release of company product linePress Releases
ProofInUse Initiative Launched, Will Deliver Verification Tools for Critical Systems
Public/private laboratory for mathematical proof-based tools led by Inria and AdaCorePress 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 kernelPress 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 toolsPress 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 ecosystemPress Releases
SmartWard Pty Ltd Selects AdaCore Tools for Hospital Information System Development
Ada chosen for benefits in reliability, safety, and securityPress 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 softwarePress Releases
AdaCore Releases GNAT Pro 7.2 for Android
New major release of AdaCore’s development environment extends support for ARM platformsPress Releases
GNAT Pro Safety-Critical Development Environment Released for LynxOS-178
New platform extends AdaCore product offerings in embedded safety-critical marketplacePress Releases
AdaCore Releases GNAT Pro 7.2
New major release of Ada software development environment includes 120+ new features and extends support across ARM platformsPress Releases
AdaCore Releases GNAT Pro 7.2 for ARM/Linux
New major release of AdaCore’s development environment extends support for ARM platformsPress 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 functionalityPress 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 developersPress Releases
Deep Blue Capital Selects AdaCore Products for Financial System Development
Reliable Ada software gives trading firm a competitive edgePress 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 toolsPress Releases
AdaCore and Altran Toolsets Help Launch CubeSat into Orbit
NASA-sponsored satellite from Vermont Technical College uses GNAT Pro and SPARKPress 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 conceptsPress 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 supportPress 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 SystemPress Releases
AdaCore Announces Successful Completion of Project Hi-Lite
Open Source project eases high integrity software development by combining formal methods with testingPress 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 enhancementsPress Releases
AdaCore Releases GNAT Pro Safety-Critical for ARM Processors
Ada now available for popular bareboard platformPress Releases
AdaCore and Wind River to Offer Joint Product Training Services in Europe
Training and Mentoring Solutions to Optimize Customers’ Embedded Software DevelopmentPress Releases
Ada 2012 Language Standard Approved by ISO
Language revision adds contract-based programming, multicore support, and other advanced featuresPress 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 maintenancePress 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 systemsPress 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 systemsPress Releases
AdaCore Releases Major New Version 2.1 of CodePeer Static Analysis Tool
Full support for the upcoming Ada 2012 language standardPress Releases
'Project P' and 'Hi-MoCo' Research Projects Launched
Open-source research projects combine model-based integration and qualified code generation for safety-critical systemsPress Releases
AdaCore Launches GNATtest
Unit test harness generator reduces test development effort for large software projectsPress Releases
AdaCore and SofCheck Merge
Ada expert Tucker Taft joining AdaCore as Director of Language ResearchPress 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 certificationPress Releases
AdaCore Takes On Agile Certification: the OPENCOSS and pSafecer Projects
AdaCore brings its high-integrity expertise to key collaborative projectsPress 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 editingPress Releases
Digicomp Shows Continuing Success with Ada and GNAT Pro
Company reaffirms long-standing relationship with AdaCorePress Releases
AdaCore’s GNATcoverage Product Awarded Electron d'Or Prize
Open Source coverage analysis tool wins prize in 14th annual award programPress Releases
Siemens Switzerland Selects AdaCore Toolset for Railway Project
GNAT Pro to be used for safety-critical software development of railway control systemPress Releases
AdaCore and Altran Praxis Release SPARK Pro 10
Increased flexibility and functionality for high-assurance systemsPress Releases
NIST Report Shows SPARK Most Suitable Language for Secure Programming
SPARK language shown to have fewest vulnerabilitiesPress Releases
Thales Selects AdaCore Toolset for Argos Satellite Project
GNAT Pro to be used on high-assurance software for global location and data collection systemPress 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 modernizationPress Releases
AdaCore Helps Singo Solution Implement Scalable, Robust Call Management System
Improved quality, reliability, and performance in new Blaze productPress Releases
AdaCore Releases Major New Version of CodePeer Source Code Analysis Tool
More efficient, generates fewer “false positive” messagesPress Releases
AdaCore Releases GNAT Pro 6.4
Ada development environment brings new features, platforms, and tool supportPress Releases
EADS CASA Selects AdaCore Toolset for nEUROn Unmanned Aircraft
GNAT Pro supports high-integrity systems on European unmanned air combat vehiclePress 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 codePress Releases
AdaCore Releases New GNATemulator Tool
AdaCore Releases New GNATemulator Tool for Efficient Embedded Software Testing Provides open source, integrated, lightweight target emulationPress 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 usePress 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 WorkbenchPress 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 applicationsPress Releases
Open Source SPARK Implementation of Skein Algorithm
SPARKSkein reference implementation achieves success ahead of Crypto 2010 conferencePress Releases
SPARK Pro Adopted by secunet
High-assurance development environment selected to implement multi-level security workstationPress Releases
AdaCore Announces Hi-Lite Project
New consortium aims to promote formal methods for high integrity softwarePress Releases
Rockwell Collins Selects SPARK Pro for Security and Information Assurance
SPARK tools complement GNAT Pro for High Assurance Software projectsPress Releases
GNAT Pro High-Integrity Edition For VxWorks MILS Platform now available
A complete security application development environment for EALs 1 through 7Press Releases
MBDA Extends Global Software Licensing Agreement with AdaCore
Leading missile company adopts SPARK Pro and AdaCore’s GNAT Pro development environments as corporate standardPress Releases
SPARK Pro 9 now available
New SPARK Pro 9 Development Environment Delivers Increased Security Assurance for Critical ProjectsPress 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 WindowsPress Releases
GNAT Pro support for PikeOS
New Safety-Critical RTOS Platform for GNAT Pro High-Integrity EditionPress Releases
AdaCore Launches CodePeer Tool
Automated code review assistant helps eliminate bugs and vulnerabilitiesPress Releases
AdaCore partners with MICROTASK Embedded
New Italian distributor extends reach of Ada tools and supportPress 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 targetsPress 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 versionPress Releases
Lockheed Martin Selects GNAT Pro for C-130J Software
AdaCore’s Ada development environment chosen for Block 7.0 UpgradePress Releases
Thales Aerospace Division Selects GNAT Pro for Airbus A350 XWB (Xtra Wide-Body)
Safety-critical systems to be implemented in Ada 2005Press 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 configurationsPress Releases
Astrium in the UK Selects GNAT Pro for Environmental Satellite System
Sentinel-1 Project Using Ada for Advanced Radar SystemPress Releases
PARSEC Group and AdaCore Announce Partnership
New support solutions help Ada users migrate to modern HP architecturesPress Releases
GNAT Pro available for 8-bit AVR Microcontroller
UK Atomic Weapons Establishment selects Ada and GNAT Pro for AVRPress Releases
Praxis and AdaCore Announce SPARK Pro
New open source tool suite improves high assurance software projectsPress Releases
AdaCore Launches Traceability Analysis Package for DO-178B
Provides customized source-to-object code traceability analysisPress Releases
BAE Systems UK Signs Corporate-Wide Contract with AdaCore
Leading defense and aerospace company adopts AdaCore’s GNAT Pro development environmentPress Releases
AdaCore Launches GNAT Pro 6.2
New release brings technology upgrades and productivity-enhancing featuresPress Releases
AdaCore Introduces Latest Version of GNAT Programming Studio
New GPS 4.3 Integrated Development Environment enables easy configurability for multiple toolchainsPress Releases
AdaCore Announces GNAT Pro High-Integrity Edition for MILS
New Member of the GNAT Pro Family to Support Multiple Independent Levels of SecurityPress Releases
AdaCore Announces GNAT Pro for the VxWorks SMP Capability
Bringing a multi-threaded language to multi-corePress Releases
AdaCore and SYSGO Announce GNAT Pro for ELinOS
Ada now available on embedded LinuxPress Releases
AdaCore Announces GNAT Pro for Nucleus OS
Ada development support for Nucleus brings reliability to high-volume, embedded computingPress Releases
Praxis and AdaCore Announce Strategic Partnership
Product integration takes the SPARK language and toolset to the next levelPress 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 mannerPress 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 WindowsPress Releases
Ipesoft Selects GNAT Pro to Develop Real-Time Management Systems
Ipesoft Selects AdaCore and GNAT Pro to Develop Real-Time Management and Production SystemsPress Releases
AdaCore Announces the Release of the GNAT Component Collection
Suite of proven, reusable components now available to GNAT Pro customersPress Releases
Adacore Releases GNAT Ada-Java Interfacing Suite
New tool suite helps developers create multi-language applicationsPress Releases
AdaCore Announces “Project Coverage”
The first Open Source code coverage project for DO-178B and safety-critical systemsPress Releases
AdaCore Announces Support for VxWorks 653, Version 2.2
Now Supporting Full Integration with VxWorks 653 Platform, Version 2.2Press Releases
AdaCore Announces the Release of GNATbench 2.1.0
Enhanced Eclipse-based development environment for Ada improves productivity; decreases time-to-marketPress 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 SystemsPress 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 complexityPress 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 standardsPress 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 standardPress 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 SupportPress 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 applicationsPress Releases
AdaCore Launches Remote Programming Solution
Advanced IDE facility brings significant productivity benefits to software developersPress 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 SystemsPress Releases
AdaCore Delivers Enhanced Ada Integrated Development Environment
New features in GNAT Programming Studio improve programmer productivityPress 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 systemsPress 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 termsPress 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 SystemsPress 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 CompilerPress 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 ProgramsPress 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 DevelopmentPress 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 DevelopmentArticles
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-dayEvents
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:
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 TaftOur 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
Customer Stories
Pilot Ejection Seat
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, 2017Papers
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
GAP Member Projects
The Muen Separation Kernel
GAP Member Projects
Lunar CubeSat
GAP Member Projects
Trusted Key Manager for IKEv2
GAP Member Projects
SPARK in Formal Verification Research
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
GAP Member Projects
Real-Time Software Development with GNAT for Mindstorms
GAP Member Projects
Ironsides Secure DNS Server
GAP Member Projects
Real-Time control of a Model Railway System
GAP Member Projects
Real-Time System Development in Ada using LEGO MINDSTORMS NXT
GAP Member Projects
Battling Robots: European Robotics Cup
GAP Member Projects
ECHO: A Practical Approach to Formal Verification
GAP Member Projects
Serafina Autonomous Mini Submersible
GAP Member Projects
Arctic Sea Ice Buoy and CubeSat Projects
GAP Member Projects
Dasher! – A Racing Robot in Ada
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
IntroductionAda 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
IntroductionAda 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
IntroductionAda 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
IntroductionAda 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…IntroductionAda Gems
Gem #79: Where did my memory go? (Part 3)
Let's get started…Part III: External ToolsAda 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 wayAda 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 TrioAda 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 softwareDocumentation
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 samplesPress Releases
Ada on Board: Thales Using AdaCore’s GNAT Pro for Critical Avionics Software
Qualified autocode generator implemented in AdaPages
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 DomainsDocumentation
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 ToulouseArticles
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 21Events
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 InterferenceArticles
Improving Code Quality in the New Year
Pages
GAP Registration
Register for the GNAT Academic ProgramPages
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 performancePages
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, MdPages
Program
View the program for the Sound Static Analysis for Security Workshop from Wednesday, June 27th through Thursday, June 28Pages
Venue
The Sound Static Analysis for Security Workshop will be held at NIST in Gaithersburg, MD. Accommodations and transport are available at the Holiday InnPages
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 applicationsPapers
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 coreEvents
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 partitionsPress 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 processorsArticles
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 youPress Releases
AdaCore Shows How to Address the Cybersecurity Challenge
Free book offers guidance for achieving secure and reliable softwarePapers
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 languageVideos
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 membersEvents
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 StandardVideos
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 SPARKArticles
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 95Documentation
Ada 2005 Reference Manual
This is the reference manual of Ada 2005Documentation
Ada 2012 Reference Manual
This is the reference manual of Ada 2012Press 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 testingEvents
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 hobbyistsArticles
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 verificationPages
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, 2019Articles
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++ supportArticles
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 RTOSVideos
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 softwarePages
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 participationPages
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 & NEW YORK & 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 SPARKPress 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 AdaEvents
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 & PARIS & 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 developmentArticles
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 2019Papers
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/8792964Events
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 & 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:00amPress 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 applicationsPapers
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 AdaCoreArticles
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 drivingEvents
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 queriesPapers
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 Reloaded” new 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 platformPapers
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
Pages
GAP Workshop Registration 2023
Register for the free GAP Workshop on June 21, 2023Events
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
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
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
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, 2022Documentation
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 developmentPapers
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 2022Articles
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
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 CompilerPages
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 notesDocumentation
GNAT Release Notes
Release notesDocumentation
GNAT SAS Release Notes
Release notesDocumentation
SPARK 2014 Release Notes
Release notesEvents
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 notesDocumentation
Libadalang Release Notes
Release notesAdaCore 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 GuideSecurity 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 notesPapers
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 informationEvents
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.