Opentopia Directory Encyclopedia Tools

Esterel

Encyclopedia : E : ES : EST : Esterel


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. As a consequence, it is very well suited for control-dominated model designs.

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 lead by Gérard Berry. Current compilers take Esterel programs and generate C code or hardware (RTL) implementations (VHDL or Verilog).

The language is still under development, with several compilers out. The commercial version of Esterel is the development environment Esterel Studio. The company that develops it (Esterel Technologies) has initated a normalization process with the IEEE. The [Esterel v7 Reference Manual Version v7 30 – initial IEEE standardization proposal] is publicly available.

The Esterel Framework

Ontology: Components are states
Epistemology: Active states, presence and values of signals
Protocols: Components interact via instantaneous broadcast
Lexicon: Interaction is via signals

The Multiform Notion of Time

The notion of time used in Esterel differs from that of non-synchronous languages in the following way: The notion of physical time is replaced with the notion of order. Only the simultaneity and presence of events are considered. This means that the physical time does not play any special role. This is called multiform notion of time. An Esterel program describes a totally ordered sequence of logical instants. At each instant, an arbitrary number of events occur (including 0). Event occurrences that happen at the same logical instant are considered simultaneous. Other events are ordered as their instances of occurrences. 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.

Signals

Signals are the only means of communication. There are valued and non-valued signals. They are further categorized as being input, output, or local signals. A signal has the property of being either present or absent in an instant. Valued signals also contain a value. Signals are broadcast across the program, that means any process can read or write a signal. The value of a valued signal can be determined in any instant, even if the signal is absent. The default status of a signal is absent. Signals remain absent until they are explicitly set to present using the emit statement. Communication is instantaneous, that means that a signal emitted in a cycle is visible immediately. Note that one can communicate back and forth in the same cycle.

Signal Coherence rules

Thus
present A else
emit A
end
is an erroneous program.

Basic Esterel Statements

emit S
Make signal S present in the current instant. A signal is absent unless it is emitted.
pause
Stop and resume after the next cycle after the pause.
present S then stmt1 else stmt2 end
If signal S is present in the current instant, immediately run stmt1, otherwise run stmt2.
await S
Waits for the next cycle in which S is present. await normally waits for a cycle before beginning to check. await immediately also checks the initial cycle.
loop p end
This repeates body p infinitely often. As a rule, the loop body cannot terminate instantly. (Needs at least one pause, await, etc.
p||q
Runs p and q concurrently. It terminates when all groups have terminated.
Thus
emit A
present A then emit B end;
pause;
emit c
makes A and B present in the first instant, C present in the second.

The ABRO Example

Consider the following controller specification:
Emit the output O as soon as both inputs A and B have been received. Reset the behaviour whenever the input R is received.

module ABRO:
input A, B, R;
output O;
loop
[await A||await B]
emit O
each R
end module

Advantages of Esterel

Disadvantages of Esterel

See also

External links

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.

Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: