Esterel is both a programming language, dedicated to programming reactive systems, and a compiler which translates Esterel programs into finite-state machines. 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. Esterel Programs Verification Tools Known Bugs and Fixes. Esterel mode for XEmacs An Esterel to TeX setting environment.