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
Dec 05, 2013

Yannick Moy

Rail, Space, Security: Three Case Studies for SPARK 2014

We will present three case studies using SPARK 2014 at the upcoming Embedded Real Time Software and Systems conference in Toulouse in February 2014,…

Adacore card default
Nov 29, 2013

Claire Dross

SPARK 2014 Rationale: Formal Containers

SPARK 2014 excludes data structures based on pointers. Instead, one can use the library of formal containers. They are variant of the Ada 2012…

Adacore card default
Nov 20, 2013

Yannick Moy

GNATprove Tips and Tricks: Referring to Input in Contracts

In a previous post about pre-call values, I described how the Ada language rules implemented in the compiler prevent surprises when referring to…

Adacore card default
Nov 13, 2013

Yannick Moy

SPARK 2014 Rationale: Global State

Global variables are a common source of programming errors: they may fail to be initialized properly, they can be modified in unexpected ways,…

Adacore card default
Oct 28, 2013

Gem #154: Multicore Maze Solving, Part 2

Adacore card default
Oct 20, 2013

Yannick Moy

SPARK 2014 Rationale: Mixing SPARK and Ada Code

The first step before any formal verification work with SPARK is to delimitate the part of the code that will be subject to formal verification…

Adacore card default
Oct 09, 2013

Gem #153: Multicore Maze Solving, Part 1

Adacore card default
Oct 04, 2013

Yannick Moy

SPARK 2014 Rationale: Loop Variants

Loop variants are the little-known cousins of the loop invariants, used for proving termination of subprograms. Although they may not look very…

Adacore card default
Sep 29, 2013

Yannick Moy

SPARK 2014 Rationale: Loop Invariants

Formal verification tools like GNATprove rely on two main inputs from programmers: subprogram contracts (preconditions and postconditions) and loop…

Adacore card default
Sep 23, 2013

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

Adacore card default
Sep 14, 2013

Yannick Moy

SPARK 2014 Rationale: Pre-call and Pre-loop Values

Subprogram contracts are commonly presented as special assertions: the precondition is an assertion checked at subprogram entry, while the…

Adacore card default
Aug 04, 2013

Yannick Moy

MISRA-C 2012 vs SPARK 2014, the Subset Matching Game

The MISRA C subset of C defines around 150 rules that restrict C programs for critical software development. Of these, 27 rules are classified as…