Personal tools
You are here: Home Events Milner Lectures 1996 Milner Lecture

1996 Milner Lecture

Synchronous Programming of Reactive Systems


Gerarld Berry, Ecole des Mines and INRIA


A reactive system is a system that repeatedly responds to inputs from its environment by producing outputs.  Reactive systems include real-time process controllers and all kinds of control automata.  We show that the classical programming tools are not well-adapted to reactive systems programming: automata-based systems lack high-level parallel programming primitives, asynchronous languages do not respect the intrinsic determinism of reactive systems.  We present a new 'synchoronous programming technology, introduced in the ESTEREL language.  It is based on a synchrony hypothesis which states that response to input is instantaneous.  Parallel processes communicate instantly by signal broadcasting.  The local and global behavours of a program are deterministic.  Time is handled in a rigorous way; each input signal determines a seperate time unit, and delays or watchdog apply to centimetres or wheel revolutions as well as to seconds. We illustrate the ESTEREL programming style on small examples.  We show how to compile an ESTEREL program into a small and efficient automaton.  We discuss the practical validity of the synchrony hypothesis.  We briefly present other synchronous formalisms such as LUSTRE, SIGNAL and the STATECHARTS.

Document Actions