AdaCore: Build Software that Matters
AdaCore Hero Image

Blog

An Insight Into the AdaCore Ecosystem

I Stock 1160534396
Dec 15, 2025
Andrea Bristol

Year in Review 2025: A Transformative Year for High-Integrity Software at AdaCore

As 2025 comes to a close, it’s clear that this has been one of the most significant years in AdaCore’s history. Our work to help organisations build…
Read More
Adacore card default
Mar 31, 2014

Yannick Moy

Studies of Contracts in Practice

Two recent research papers focus on how program contracts are used in practice in open source projects, in three languages that support contracts…

Adacore card default
Mar 19, 2014

Johannes Kanig

A Little Exercise With Strings

I recently looked at string manipulation functions in a library and tried to prove absence of run-time errors of one of them. Although the function…

Adacore card default
Mar 18, 2014

Florian Schanda

Information Flo(w): Array Initialization in Loops

SPARK only supported array initialization using aggregates, as array initialization in loops raised a false alarm in flow analysis. Read on to learn…

Adacore card default
Mar 18, 2014

Florian Schanda

SPARK 2014 Rationale: Data Dependencies

Programs often use a few global variables. Global variables make passing common information between different parts of a program easier. By reading…

Adacore card default
Mar 03, 2014

Gem #157: Gprbuild and Code Generation

This series of Gems explains how gprbuild can be configured to invoke code generators before it compiles the resulting code itself.

Adacore card default
Mar 02, 2014

Yannick Moy

GNATprove Tips and Tricks: How to Write Loop Invariants

Having already presented in previous posts why loop invariants are necessary for formal verification of programs with loops, and what loop invariants…

Adacore card default
Feb 04, 2014

Gem #156: Listing Control in GNAT

Adacore card default
Jan 21, 2014

Yannick Moy

Case Study for System to Software Integrity Includes SPARK 2014

My colleague Matteo Bordin will present at the upcoming Embedded Real Time Software and Systems conference in Toulouse in February a case study…

Adacore card default
Jan 17, 2014

Claire Dross

SPARK 2014 Rationale: Verifying Properties over Formal Containers

We saw in a previous post how we could express complex properties over formal containers using quantified expressions. In this post, I present how…

Adacore card default
Dec 19, 2013

Yannick Moy

Muen Separation Kernel Written in SPARK

The University of Applied Sciences Rapperswil in Switzerland has released last week an open-source separation kernel written in SPARK, which has been…

Adacore card default
Dec 13, 2013

Claire Dross

SPARK 2014 Rationale: Expressing Properties over Formal Containers

We saw in a previous post how formal containers can be used in SPARK code. In this post, I describe how to express properties over the content of…

Adacore card default
Dec 09, 2013

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