Critical systems

Since 2009, I teach synchronous programming for embedded critical systems. I started at ENSICA then at SupAéro, ENSTA ParisTech, where I am currently responsible for this course. Synchronous languages are used because it is a formal language that makes it possible to define mathematical properties of a system (ie: Paul Caspi, Nicolas Halbwachs). Let's take an example: imagine that the have wants to prove the behavior of an aircraft: at an altitude of 5000 feet, the speed must be 300 km / h, the incidence of 12 degrees. Usually, to verify such a property it is necessary to perform simulations, real tests. Synchronous languages make it possible to check a property only from the equations of the system.

The synchronous language SCADE uses Luster and Esterel to answer two problems: Luster is a synchronous programming language, declarative, and by streams, Esterel is synchronous and reactive, it is imperative and allows the simple expression of the parallelism and the preemption. Today, I use this technology for space projects and in particular for nano-satellites.

Scade ressources: Videos.