Esterel is a synchronous programming language for the development of complex reactive systems.
The imperative programming style of Esterel allows the simple expression of parallelism and preemption.
The development of the language started in the early 1980s, and was mainly carried out by a team of Ecole des Mines de Paris and INRIA led by Gérard Berry in France.
Current compilers take Esterel programs and generate C code or hardware (RTL) implementations (VHDL or Verilog).
The company that commercialized it (Synfora) initiated a normalization process with the IEEE in April 2007 however the working group (P1778) dissolved March 2011.
An Esterel program describes a totally ordered sequence of logical instants.
There are two types of statements: Those that take zero time (execute and terminate in the same instant) and those that delay for a prescribed number of cycles.