About Ocarina

Ocarina is a stand-alone AADL model processor, written in Ada. It is distributed under the GPLv3 plus runtime exception.

It supports the following features:

  • Parser: support both AADL1.0 and AADLv2 syntaxes;

  • Code generation: targetting C real-time operating systems: RT-POSIX, Xenomai, RTEMS; and Ada using GNAT for native and Ravenscar targets;

  • Model checking: mapping of AADL models onto Petri Nets, timed (TINA) or colored (CPN-AMI);

  • Schedulability analysis: mapping of AADL models onto Cheddar or MAST models

  • Model Analysis: using the REAL language, one can analyse an AADL model for particular patterns or compute metrics.

Ocarina is an independent tool, it can either be used

  • Stand-alone: from the commande line

  • OSATE2 Integration: Ocarina can also be integrated to OSATE2 using a dedicated plug-in, see the following page for more details.

  • Library: Ocarina can be integrated in third-party tool, like Cheddar.

Ocarina runs on Linux, Windows, Mac OS X. Thanks to Ada portability, it can be ported to any platform supported by GNAT for native development.

Usage of Ocarina

Ocarina is used in the following projects:

  • TASTE toolchain: Ocarina is used as a library in the buildsupport tool, supporting model transformation, and as a stand-alone tool for code generation targetting various RTOSes;

  • Cheddar scheduling tool: a old version of Ocarina is used in Cheddar to support the import of AADL1.0 models.

In addition, Ocarina is used as teaching tool:


Ocarina documentation is bundled with the tarball. For your convenience, we provide:

Ocarina snapshots

Up-to-date snapshots from the github development branch are built every night and posted in the download area

Snapshots are rebuilt every night, at 9:30pm CET (UTC+1), and pushed on the website at 11pm.

Install Ocarina from source distribution

Ocarina requires a valid GNAT Ada compiler installed. We recommend either latest GNAT GPL or a GCC from the FSF.

  • Download Ocarina sources from the Download section or from github.

  • To compile and install Ocarina, just type:

./configure [options]
make install
  • type
./configure --help

to get the list of possible options.

  • To change the installation directory, use the flag
  • To compile the documentation, use the flag

Note this requires a valid LaTeX + TeXinfo installation.

  • If you modify source files, build Ocarina after a checkout or make distclean, or the directory hierarchy of the source files, you should re-generate autoconf and automake files (configure, Makefile.in…); to do this, from the main directory, run:

For more details, please refer to Ocarina’s documentation.

History of the Ocarina project

Here is a brief summary of the timeline of Ocarina:

  • Ocarina was initiated in 2004 by Telecom ParisTech as part of the ASSERT to support code generation from AADL1.0 models. The first users were the European Space Agency, MBDA and Astrium, targetting an Ada Ravenscar runtime.

  • At the completion of the ASSERT project, Ocarina effort was pursued as part of the Flex-eWare project. Ocarina has been extended to support model evaluation using REAL, and code generation targetting C/RT-POSIX OS between 2007 and 2009.

  • Starting 2008, Jérôme Hugues is in charge of the maintenance and the evolution of Ocarina as part of the TASTE toolchain, an offspring of ASSERT. TASTE completes ASSERT by adding new features and support for new operating systems. The TASTE toolchain relies on Ocarina for the generation of mission-critical space on-board software.

  • Since mid-2009, Telecom ParisTech is no longer involved in Ocarina, and is developping another AADL toolchain, based on Eclipse, codenamed RAMSES.

  • The development of Ocarina has been opened through TASTE in 2010, and subsequently deployed on github in 2013.

About Ocarina’s license

Ocarina is distributed under the GPLv3 plus runtime exception.

The GPLv3 plus runtime exception guarantees that Ocarina, but also the code it generates can be distributed under customer-specific terms and conditions. Specifically, the licence ensures that you can generate proprietary, classified, or otherwise restricted executables.