Ada-Belgium is pleased to announce its
10th Ada Developer Room at FOSDEM 2020
Ada at the Free and Open source Software Developers' European Meeting
on Saturday 1 February 2020
Université Libre de Bruxelles (ULB), Solbosch Campus, Room AW1.125
Avenue Franklin D. Roosevelt Laan 50, B-1050 Brussels, Belgium
Organized in cooperation with Ada-Europe
*** General Information
FOSDEM, the Free and Open source Software Developers' European Meeting,
is a free and non-commercial two-day weekend event organized early
each year in Brussels, Belgium. It is highly developer-oriented and
brings together 8000+ participants from all over the world.
The goal is to provide open source developers and communities a
place to meet with other developers and projects, to be informed
about the latest developments in the open source world, to attend
interesting talks and presentations on various topics by open source
project leaders and committers, and to promote the development and
the benefits of open source solutions.
The 2020 edition takes place on Saturday 1 and Sunday 2 February.
It is free to attend and no registration is necessary.
In this edition, Ada-Belgium organizes once more a series of
presentations related to the Ada Programming Language and Free or
Open Software in a s.c. Developer Room. The "Ada DevRoom" at FOSDEM
2020 is held on the first day of the event, Saturday 1 February 2020.
This year FOSDEM has a total of 13 Ada-related presentations by 12
authors from 8 countries! A mini-poster about the Ada DevRoom ,
as well as a one-page Call for Participation for the Ada DevRoom 
is available; they can be used to help announce the event, and to
give an idea about its scope.
*** Ada Programming Language and Technology
Ada is a general-purpose programming language originally designed
for safety- and mission-critical software engineering. It is used
extensively in air traffic control, rail transportation, aerospace,
nuclear, financial services, medical devices, etc. It is also
perfectly suited for open source development.
Awareness of safety and security issues in software systems is
ever increasing. Multi-core platforms are now abundant. These are
some of the reasons that the Ada programming language and technology
attracts more and more attention, among others due to Ada's support for
programming by contract and for multi-core targets. The latest Ada
language definition was updated early 2016. Work on new features is
ongoing, such as improved support for fine-grained parallelism, and
will result in a new Ada standard scheduled for 2021. Ada-related
technology such as SPARK provides a solution for the safety and
security aspects stated above. More and more tools are available,
many are open source, including for small and recent platforms.
Interest in Ada keeps further increasing, also in the open source
community, and many exciting projects have been started.
The Ada DevRoom aims to present the facilities offered by the
Ada language (such as for object-oriented, multicore, or embedded
programming) as well as some of the many exciting tools and projects
using Ada. FOSDEM is an ideal fit for an Ada Developer Room. On the
one hand, it gives the general open source community an opportunity
to see what is happening in the Ada community and how Ada technology
can help to produce reliable and efficient open source software.
On the other hand, it gives open source Ada projects an opportunity to
present themselves, get feedback and ideas, and attract participants
to their project and collaboration between projects.
This year as well, audio/video equipment and network facilities
are provided by the FOSDEM organizers, to enable recording and live
streaming all DevRoom presentations. Volunteers "man" that equipment
during the day. After postprocessing the recordings, links to them are
made available via the "More information" entry for each presentation.
Additional volunteers to help with various logistic issues during
the day are needed as well, such as monitoring room overflow and
refusing entry when the room is too full, defragmenting the room in
between presentations, helping speakers with microphone adjustments,
monitoring the timeslots and warning speakers when they have to start
or when they risk running out of time, as well as various practical
issues that need to be handled ASAP when they occur.
If you'd like to help, please get in touch (see below).
*** Ada Developer Room Presentations (room: AW1.125, 76 seats)
The presentations in the Ada DevRoom start after the opening FOSDEM
keynotes. The program runs from 10:30 to 19:00.
10:00-10:30 - Arrival & Informal Discussions
Feel free to arrive early, to start the day with some informal
discussions while the set-up of the DevRoom is finished.
10:30-10:35 - Welcome to the Ada DevRoom
by Dirk Craeynest - Ada-Belgium
Welcome to the Ada Developer Room at FOSDEM 2020, which is organized
by Ada-Belgium in cooperation with Ada-Europe. Ada-Belgium and
Ada-Europe are non-profit organizations set up to promote the
use of the Ada programming language and related technology,
and to disseminate knowledge and experience into academia,
research and industry in Belgium and Europe, resp. Ada-Europe has
member-organizations, such as Ada-Belgium, in various countries,
and direct members in many other countries.
10:35-11:20 - An Introduction to Ada for Beginning and Experienced
Programmers - by Jean-Pierre Rosen - Adalog, France
An overview of the main features of the Ada language, with special
emphasis on those features that make it especially attractive for
free software development. Ada is a feature-rich language, but what
really makes Ada stand-out is that the features are nicely integrated
towards serving the goals of software engineering. If you prefer
to spend your time on designing elegant solutions rather than on
low-level debugging, if you think that software should not fail,
if you like to build programs from readily available components
that you can trust, you should really consider Ada!
11:30-11:50 - HAC: the Compiler which will Never Become Big
by Gautier de Montmollin - Ada-Switzerland
In the Ada world, we are surrounded by impressive and professional
tools that can handle large and complex projects. Did you ever
dream of a tiny, incomplete but compatible system to play with?
Are you too impatient, for developing small pieces of code, for
long compile-bind-link-run cycles? Are you a beginner intimidated
by project files and sophisticated tools? Then HAC (the HAC Ada
Compiler, or the Hello-world Ada Compiler) is for you. HAC is a
revival of the SmallAda project, which supported the "Pascal subset"
12:00-12:50 - Tracking Performance of a Big Application from Dev to Ops
by Philippe Waroquiers - Eurocontrol, Belgium
This talk describes how performance aspects of a big Air Traffic
Flow Management mission critical application are tracked from
development to operations. Tracking performance is needed when new
functionality is added, to balance the additional services versus
the resource increase needed. Measuring and tracking performance is
also critical to ensure a new release can cope with the current or
expected load. We will discuss various aspects such as which tools
and techniques are used for performance tracking and measurements,
what are the traps and pitfalls encountered for these activities.
The application in question is using Ada, but most of the items
discussed are not particularly Ada related.
13:00-13:20 - Cappulada: What we've Learned
by Johannes Kliemann - Componolit, Germany
Last year I presented Cappulada, a C++ binding generator for Ada
that intended to overcome the shortcomings of existing solutions and
to provide usable bindings even for complex C++ code. This year I
want to show our conclusions on why automatic bindings between C++
and Ada are hard (if not impossible) and where existing solutions
(including our own) fail.
13:30-13:50 - Programming ROS2 Robots with RCLAda - by Alejandro
R. Mosteo - Centro Universitario de la Defensa, Spain
The Robot Operating System (ROS) is one of the chief frameworks
for service robotics research and development. The next iteration
of this framework, ROS2, aims to improve critical shortcomings of
its predecessor like deterministic memory allocation and real-time
characteristics. RCLAda is a binding to the ROS2 framework that
enables the programming of ROS2 nodes in pure Ada with seamless
integration into the ROS2 workflow.
14:00-14:50 - Live Demo of Ada's Distribution Features
by Jean-Pierre Rosen - Adalog, France
Ada incorporates in its standard a model for distributed execution.
It is an abstract model that does not depend on a particular kind
of network or any other communication mean, and that preserves
full typing control across partitions. This presentation briefly
exposes the principles of Ada's distribution model, then shows
the possibilities with life demos across different machines and
15:00-15:20 - Writing Shared Memory Parallel Programs in Ada - by
Jan Verschelde - University of Illinois at Chicago, USA
Multitasked Newton's Method for Power Series Tasks in Ada are
effective to speed up computations on multicore processors.
In writing parallel programs we determine the granularity of the
parallelism with respect to the memory management. We have to decide
on the size of each job, the mapping of the jobs to the tasks,
and on the location of the input and output data for each job.
A multitasked Newton's method will show the effectiveness of Ada
to speed up the computation of power series. This application
belongs to the free and open source package PHCpack, a package to
solve polynomial systems by polynomial homotopy continuation.
15:30-15:50 - Spunky: a Genode Kernel in Ada/SPARK
by Martin Stein - Genode Labs, Germany
The Genode OS framework is an open-source tool kit for building
highly secure component-based operating systems scaling from
embedded devices to dynamic desktop systems. It runs on a variety
of microkernels like SeL4, NOVA, and Fiasco OC as well as on Linux
and the Muen SK. But the project also features its own microkernel
named "base-hw" written in C++ like most of the Genode framework.
Spunky is a pet project of mine. Simply put it's an approach to
re-implement the design of the "base-hw" kernel first in Ada and
later in SPARK with the ultimate goal to prove its correctness.
It is also an opportunity to learn how Genode can benefit from
Ada and SPARK in general and promote the use of safety-oriented
languages in the project.
16:00-16:50 - Alire: Ada Has a Package Manager - by Alejandro R. Mosteo
- Centro Universitario de la Defensa, Spain, Pierre-Marie
de Rodat and Fabien Chouteau - AdaCore, France
Alire (Ada LIbrary REpository) is a package manager project for the
Ada/SPARK community. The goal of a package manager is to facilitate
collaboration within the community and to lower the barrier of entry
for beginners. In this talk we will present the Alire project,
what it can do for you and how you can contribute and give more
visibility to your Ada/SPARK projects. We will also provide a
tutorial to show how to use Alire to create a library and then
publish it for others to use.
17:00-17:20 - Protect Sensitive Data with Ada Keystore
by Stephane Carrez - Twinlife, France
Storing passwords and secret configuration is a challenge for
an application. Ada Keystore is a library that stores arbitrary
content by encrypting them in secure keystore (AES-256, HMAC-256).
The talk presents the project and shows how to use the Ada Keystore
library to get or store secret information in a secure manner.
The presentation explains how the Ada features such as types,
protected types, tasks, pre/post conditions have helped during the
development of this project.
17:30-17:50 - EUgen: a European Project Proposal Generator
by Riccardo Bernardini - University of Udine, Italy
Whoever wrote a research project proposal knows how much unnerving
it can be. The actual project description (made of work packages,
tasks, deliverable items, ...) has lots of redundancies and
cross-references that makes its coherency as frail as a house
of cards. For example, if the duration of a task is changed most
probably you'll need to update the effort in person-months of the
task and of the including work package; you must update the start
date of depending tasks and the deliver date of any deliverable
items; most probably also the WP efforts and length need update too;
not to mention the need of updating all the summary tables (summary
of efforts, deliverable, ..) and the GANTT too. Any small changes is
likely to start a ripple of updates and the probability of forgetting
something and getting an incoherent project description is large.
Given the harsh competition in project funding, if your project is
incoherent the probability of getting funded is nil.
One day I got sick of this state of affair and I wrote my own project
generator: 10k lines of Ada code that reads a non-redundant project
description from a simple-format text file and produces a set of
files ready to be imported in the proposal, GANNT chart included.
The user can specify dependences between different items (e.g.,
this deliverable is produced at the end of this task, this milestone
is reached when this deliverable is available, this task must begin
after this other task...) and the program automatically computes all
the dates. Both input parser and output processors are implemented
using a plugin structure that makes it easy to write new parsers to
read different formats or new output processors to produce output in
different formats. Currently a parser for a simple ad-hoc format
and an output processor that produces LaTeX files are provided; a
new processor based on the template expander *protypo* is currently
being implemented. Did I eat my own dog food? Well, yes, I did.
I used it to write a proposal (still under evaluation) and it served
18:00-18:20 - On Rapid Application Development in Ada
by Tomasz Maluszycki - Poland
In the Ada world we typically write mission critical software that
just has to work, but in a way one could argue that a lot more
software is mission critical than is usually admitted. What does
it take to actually perform rapid application development in any
language? Can we do it in Ada and why would we do so? A quick
look into some language features that can be [ab]used for enabling
quick development of 'just a prototype' - which, as practice shows
is often deployed into production, usually without proper quality
controls and predictable outcome.
18:30-18:50 - Ada-TOML: a TOML Parser for Ada
by Pierre-Marie de Rodat AdaCore, France
The world of generic structured data formats is full of contenders:
the mighty XML, the swift JSON, the awesome YAML, ... Alas, there
is no silver bullet: XML is very verbose, JSON is not convenient
for humans to write, YAML is known to be hard to parse, and so on.
TOML is yet another format whose goal is to be a good configuration
language: obvious semantics, convenient to write and easy to
parse in general-purpose programming languages. In this talk,
I'll shortly describe the TOML format and show a few use cases in
the real world. I'll then present the ada-toml library itself:
its high-level architecture and examples.
18:50-19:00 - Informal Discussions & Closing
Informal discussion on ideas and proposals for future events.
*** More information on Ada Developer Room
Speakers bios, pointers to relevant information, links to corresponding
FOSDEM pages, etc., are available on the Ada-Belgium site at
We invite you to attend some or all of the presentations: they will
be given in English. Everybody interested can attend FOSDEM 2020;
no registration is necessary.
We hope to see many of you there!
Dirk Craeynest, FOSDEM Ada DevRoom coordinator
[log in to unmask] (for Ada-Belgium/Ada-Europe/SIGAda/WG9)