Esterel By: Sam Weinberg
Basis of Esterel Imperative deterministic language For finite state complex reactive systems Dual hardware/software language Can generate C-code to be used as a reactive kernel in other programs Esterel has been used in such things as fuel ignition and other before, after, during items.
Criterion for an Esterel Program Only simultaneity and precedence of events matter The notion of time is of all events being instantaneous Has a synchronization that is similar to and compliments hardware Relies on start and stop signals as well as other modules for more complex interaction
Primitive Signals
Derived Esterel Statements
Example one module ABRO: input A, B, R; output O loop [ await A || await B ]; emit O each R End module - takes a series of pre-built modules and states run in parallel and When terminated/reached immediately make O present/outputted until R is received This code is not wholly atypically simple and programs can occur in near instantaneous time
Example two The above causes an indirect emission of A abort pause; emit B when A || present B then emit A end. The above causes an indirect emission of A One propagating issue of the above point is causality and contradictory programs are very easy to write
Flaws Since Esterel is a dedicated, somewhat inflexible and reliable means to program reactive systems, it has a number of shortcomings Esterel code is highly simplistic and while the potential for variables does exist, they cannot be shared There is no dynamic memory allocation or dynamic creation of processes
Esterel Compiler Since Esterel is not widely used, compilers are often not up to date Available on Windows and Linux as v5_92 http://www-sop.inria.fr/meije/esterel/esterel-eng.html links to Esterel Compilers Was experimentally being used by the Polis group This is now known as the Center for Electronic Systems Design The language has been more or less defunct since 2001
References “The Synchronous Language Esterel” Stephen A. Edwards, Columbia University 2002 “An Introduction to Esterel” Embedded.com, 2001.