----------------------------------------------------------------------- Ada-Belgium is pleased to announce its Ada Developer Room at FOSDEM 2015 (Ada at the Free and Open source Software Developers' European Meeting) Saturday 31 January 2015 Université Libre de Bruxelles (U.L.B.), Solbosch Campus, Room S.AW1.124 Avenue Franklin D. Roosevelt Laan 50, B-1050 Brussels, Belgium Organized in cooperation with Ada-Europe ----------------------------------------------------------------------- The Free and Open source Software Developers' European Meeting (FOSDEM) is an annual event held in Brussels, Belgium, around early February. The 2015 edition takes place on Saturday the 31st of January and Sunday the 1st of February. Ada-Belgium organized a series of presentations related to Ada, to be held in a dedicated Developer Room, on the first day of the event. 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. The latest Ada standard was published by ISO in December 2012. As with the Ada 1995 and Ada 2005 standards, the first full implementation of the new Ada 2012 standard was made available in the GNU Compiler Collection (GNAT). This DevRoom aims to present the capabilities offered by the Ada language (object-oriented, multicore, embedded programming) as well as some of the many exciting tools and projects using Ada. -------------------------------- Ada Developer Room Presentations (S.AW1.124, 59 seats) -------------------------------- The Ada DevRoom program starts after the opening FOSDEM keynote, runs from 11:00 to 19:00, and consists of 7 hours with 9 talks/demos by 8 presenters from 5 different countries, plus 2 half-hour breaks with informal discussions. 10:30-11:00 - 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. 11:00-11:05 - Welcome by Dirk Craeynest - Ada-Belgium Welcome to the Ada Developer Room at FOSDEM 2015, 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. More information on this DevRoom is available on the Ada-Belgium web-site (see URL above). 11:05-11:55 - Ada, an Introduction by Jérémy Rosen - Open Wide This talk will introduce the Ada programming language to people used to more classical, weak-typed languages. We will focus on how Ada uses its strong typing basis to prevent the most common programming errors at the language level, allowing the compiler to check them before they cause problems. 12:00-12:50 - Building a GUI for an Ada Application with GtkAda by Serge Vanschoenwinkel - Eurocontrol GTK+ is an open-source library that allows to quickly and easily build a graphical user interface, using standard widgets like buttons, combo boxes, text and tree views, scroll bars, etc. Even though GTK+ is written in C, it can be used from an Ada application thanks to GtkAda, an object-oriented Ada/C binding. Illustrated by a poker game application, this presentation will explain the essential concepts of GtkAda. It will show how to create the most common widgets and how to interact with the user. 13:00-13:25 - Opening the Development of PHCpack by Jan Verschelde - University of Illinois at Chicago PHCpack originated from bundling programs to solve polynomial systems with symbolic-numeric and polyhedral methods. The core of PHCpack consists mainly of Ada code, with interfaces to C and Python. Its blackbox solver is accessible from various scientific software packages such as Macaulay2, Maple, MATLAB, Octave, and Sage. The goal of the talk is to explain the application of software engineering principles and the role of Ada in the development of PHCpack. 13:30-14:00 - Informal Discussions A half-hour slot has been reserved for much needed interaction and informal discussion among Ada DevRoom participants and anyone potentially interested in Ada. 14:00-14:50 - Contract-based Programming - A Route to Finding Bugs Earlier by Jacob Sparre Andersen - JSA Research & Innovation Contract-based programming is a software development technique, which is used to find programming errors earlier in the development process. "Contract" refers to formal declarations of how types and subprograms ("functions and methods" if you aren't an Ada programmer already) behave. In the strictest form, the contracts are checked as a part of the compilation process, and only a program which can be proven to conform with the contracts will compile. In a less strict form, it is more similar to "preventive debugging", where the contracts are inserted as run-time checks, which makes it more likely to identify errors during testing. Ada provides a quite extensive support for contract-based programming. The checks are specified as a mix of compile-time checks, obligatory run-time checks, and optional run-time checks. In addition to that, SPARK defines a subset of Ada with full compile-time checks. The presentation will introduce the Ada features related to contract-based programming, and provide suggestions for how to make use of the features in practice. It is organized in three main sections: type/object invariants; pre- and postconditions for operations; making the contracts for entire packages consistent. If there is time, the presentation will close with a live test of the guidelines on an example problem selected by the audience. The intended audience is anybody with enough programming experience to know concepts like types, encapsulation and packages. Having seen source text in Pascal-like programming languages will be a benefit. 15:00-15:50 - Ada for ARM Bare Board by Tristan Gingold - AdaCore In 2014, AdaCore has released two new components in the GNAT GPL Edition: GNAT GPL for ARM Bare Board and SPARK 2014. I present the content of GNAT GPL for ARM, its Ravenscar runtime, how to build and deploy an embedded application in Ada and how it was used to teach Ada. Two different demos will be presented: a Tetris game and a train signalling system. Both are fully written in Ada, with some parts written and proven with SPARK 2014. 16:00-16:50 - Multithreading Made Easy, part 3 - Bounded Work Queues by Ludovic Brenta - Debian Project Ada is one of very few programming languages that support multithreading as part of the language, as opposed to libraries. In the previous two episodes, we showed how Ada makes it easy to turn a single-threaded program into a multi-threaded program. We ended up with ten thousand threads working concurrently then introduced a task pool and work queue wherein a small number of threads (one per processor core) process thousands of small work units. But the work queue could become very big. In this third and last episode, we show how to restrict the size of the work queue to a fixed limit, thereby preventing denial-of-service attacks. This presentation will feature live editing of source code, compilation and debugging. Questions from beginners are encouraged. It is not necessary to have attended the first installments. The sources of our example program will be provided to those who want to tinker with them. 17:00-17:50 - 2D Drawing with Ada and Cairo by Serge Vanschoenwinkel - Eurocontrol Cairo is a 2D graphics library with support for multiple output devices. It is designed to produce consistent output on all output media while taking advantage of display hardware acceleration when available. The Cairo API provides operations similar to the drawing operators of PostScript and PDF. Operations in Cairo including stroking and filling cubic Bézier splines, transforming and compositing translucent images, and antialiased text rendering. All drawing operations can be transformed by any affine transformation (scale, rotation, shear, etc.). Illustrated by a poker game application, this presentation will show you how to do nice drawings with Cairo, still programming with your preferred language: Ada! 18:00-18:25 - Building Economic Simulations in Ada by Graham Stark - Virtual Worlds Research Virtual Worlds Research has been using Ada to build large scale economic simulations for 10 years now. These simulations have been used by Governments and others to model the effects of, amongst other things, changing Legal Aid and reforming Social Care funding - many billions of pounds of annual spending. Here, I discuss our experiences, good and bad, with the Ada language, and provide a live demonstration of the most recent model. I'll also discuss work in progress to build a new forecasting model in association with the University of Southampton. 18:30-19:00 - Informal Discussions & Closing Informal discussion on ideas and proposals for future events. ------------------------------- More information on Ada DevRoom ------------------------------- Speakers bios, pointers to relevant information, links to the FOSDEM site, 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 2015; no registration is necessary. We hope to see many of you there! Dirk Craeynest Dirk.Craeynest@cs.kuleuven.be (for Ada-Belgium/Ada-Europe/SIGAda/WG9) (V20150114.1)