This lecture presented in detail the Esterel synchronous programming language, already described succinctly in two sessions in 2012-2013. Esterel is designed for reactive systems, i.e. computerized systems capable of reacting to time and events coming from the outside, subject to response time constraints.
Such systems are found in particular in on-board computers designed to drive and monitor computerized objects (aircraft, cars, etc.), in digital electronic circuits, and in other devices such as man-machine interfaces and network communication protocols. Esterel enables these to be programmed safely, and also provides access to automatic bug-free checking systems.
The lecture explained in detail its key points: syntactic choices, programming style, mathematical semantic chains leading from formal specification to implementation, translation into digital circuits or executable C code, and formal program verification. The rigorous specification of the language and its implementations based directly on its formal semantics have played a crucial role in the academic and industrial development of the language and its tools. Industrialized by Esterel Technologies, Esterel has received industrial applications in a wide range of fields: avionics, man-machine interfaces, electronic circuit synthesis and verification, etc.
For the SCADE 6 language from Esterel technologies, Esterel has been unified with Lustre, another synchronous language developed in Grenoble. It is also the basis for a JavaScript extension called HipHop, which I am currently researching in collaboration with Manuel Serrano at Inria Sophia-Antipolis, as well as other languages around the world.