CMA Computer Science Group  Meije Computer Science Group * Formal Methods
The ESTEREL Language

Welcome to Esterel and Synchronous Reactive Programming !

Esterel is both a programming language, dedicated to programming reactive systems, and a compiler which translates Esterel programs into finite-state machines. It is one of a family of synchronous languages, like SyncCharts, Lustre, Argos or Signal, which are particularly well-suited to programming reactive systems, including real-time systems and control automata.

The Esterel v5 compiler can be used to generate a software or hardware implementation of a reactive program. It can generate C-code to be embedded as a reactive kernel in a larger program that handles the interface and data manipulations. It can also generate hardware in the form of netlists of gates, which can then be embedded in a larger system. Extensive optimization is available. We provide a graphical symbolic debugger for Esterel. We also provide support for explicit or BDD-based verification tools that perform either bisimulation reduction or safety property checking.

Esterel is now experimentally used by several companies and taught in several universities. It has been chosen by the Polis group as one of their input languages for their hardware/software co-design system.

Getting the compiler and related tools

Esterel Compiler  Related Tools 
*Getting Esterel v5_21.  *BASICOPT: Esterel code optimizer (version 1.1) 
*Release Notes.  *Esterel Programs Verification Tools 
*Known Bugs and Fixes.  *Esterel mode for XEmacs 
  *An Esterel to TeX setting environment. 
*Synchronous Charts (SyncCharts): a visual representation of reactive behavior.
*A Boolean datapath generator for Esterel programs
*Java code generator
*Program your Lego Mindstorms robot using Esterel or Lustre !!! 


Documentation and related papers

The Constructive Semantics of Pure Esterel [ Compressed PostScript ] [ PostScript ]
Gérard Berry.
This draft book presents the constructive semantics of Esterel and is the reference for the semantics. It also presents the translation of Esterel programs into circuits used in the Esterel v5 compiler. Current version : draft 3, July 2, 1999. Please discard former versions.

The Esterel v5 Language Primer [ PostScript ] [ PDF ]
Gérard Berry.
This document presents Esterel in a precise but informal way that should make most users happy in their use of the language and system. However, this is not a full-fledged reference manual. (Note: this document is also delivered with the Esterel system.)

The Foundations of Esterel [ PostScript ] [ PDF ]
Gérard Berry.
To appear in Proof, Language and Interaction: Essays in Honour of Robin Milner, G. Plotkin, C. Stirling and M. Tofte, editors, MIT Press, 1998.

Using Esterel and Formal Methods to Increase the Confidence in the Functional Validation of a Commercial DSP
[ Compressed PostScript ] [ PostScript ] [ PDF ]
Joint work with Texas Intruments, Villeneuve-Loubet, France.
In proceedings of ERCIM workshop on Formal Methods for Industrial Critical Systems, Trento, Italy, 1999.

*Main papers
Papers on the language design and on Esterel and synchronous circuits.
*Programming examples
Basic examples and application studies from Esterel users.
*PhD Theses
PhD Theses directly relevant to Esterel.

How to get more information

You can: