Abstract
This second lecture was devoted to the mathematics of synchronous languages in general and Esterel in particular, centered around the notion of causality of information transmission in programs. The fine-grained study of causality in the synchronous framework leads to a chain of increasingly fine-grained formal semantics; this chain ends with constructive semantics, based on ideas from the eponymous logic and also justified by physical considerations on the propagation of electrical fronts in circuits, already presented in the 2013-2014 lecture.
These semantic constructs have always underpinned the practical developments of the various versions of Esterel, their theoretical underpinnings having kept them always compatible with each other. They have served as justices of the peace for all important decisions. However, other authors have developed more restricted semantics to make Esterel's style more compatible with classical languages, starting with Frédéric Boussinot's Reactive C language, which integrates some of Esterel's notions into C in a simple and elegant way, and has inspired several other languages, including ReactiveML, presented in a seminar on the same day. Semantic extensions have also been developed more recently, such as those used by the Scl language, which was presented in seminar 4 on March 14, 2018.