Title: Synchronous Programming and its fit with Modeling
Authors: Gérard Berry
The family of Synchronous programming languages was born in the 1980's in three different French labs that gathered researchers in Computer Science and Control Theory. The three first languages were Esterel, dedicated to control-dominated problems in embedded systems, telecom protocols and later digital circuit design, Lustre, dedicated to continuous control, and Signal, oriented towards signal processing. They share a common perfect synchrony principle that expresses that the reaction to an input should be viewed as conceptually instantaneous. This simple principle is well-adapted to the targeted applications and greatly simplifies programming by reconciling parallelism and determinism. It also leads to well-defined mathematical semantics that directly ground their formal compiling, simulation and verification environments. Synchronous programming rapidly became used in Industry for safety-critical production systems in avionics (Dassault Aviation, Airbus, etc.), railways, etc., as well as in robotics and circuit design. In the 2000's, Esterel and Lustre have been unified in two new languages industrialized by Esterel Technologies (now part of Ansys): SCADE 6 for safety critical software and Esterel v7 for hardware design, both also incorporating ideas from Harel's reactive graphical formalism Statecharts.
The talk will explain the practical and mathematical concepts of synchronous programming and stress its advantages over asynchronous concurrent programming for the considered applications. It will also explore the links between synchronous programming and modeling / simulation. In one direction, synchronous languages are ideal targets to generate embedded code from executable parts of simulation models. In the other direction, embedding synchrony into conventional modelers may be necessary to solve the current tricky issues due to the coupling of discrete and continuous computations in modelers, in particular for the currently mishandled case where external or internal events provoke cascades of discrete reactions. Pouzet and Bourkes's new Zelus language is a step in this direction.Links: Slides of the talk