2. What is ESTEREL ?
Small Terminology
Where we use ESTEREL ?
Underlying Model and Basic Features
Simple - Sample Program
Conclusion - Q&A
CONTENT
3. WHAT IS ESTEREL ?
Esterel is a synchronous programming language for the
development of complex reactive systems.
4. SYNCHRONIZATION TERMINOLOGY
The idea that multiple processes are to join up or handshake at
a certain point,
in order to reach an agreement or commit to a certain
sequence of action
5. As the name suggests Synchronous Motors are capable of
running at constant speed irrespective of the load acting on them.
The term sun synchronous means that the section monitored by
the satellites is always radiated by the sun in the same way.
//Always at a specific local time.
SYNCRONOUS ?
6. (1) Transformational systems (take some inputs, process them, deliver their outputs, and
terminate their execution //Compiler
(2) Interactive systems (interact continuously with their environment, at their own speed
// the Web
(3) Reactive Systems ( interact continuously with their environment, at a speed imposed
by the environment
// Automatic flight control system of modern airplanes. [Real-time Systems]
REACTIVE SYSTEMS? WHERE TO USE
7. When activated with an input event, a reactive system reacts by producing an output
event.
A real-time system is one that produce a response within a specified time, else risk
severe consequences, including failure.
That is, in a system with a real-time constraint it is no good to have the correct action
or the correct answer after a certain deadline.
REACTIVE SYSTEMS?
9. 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.
Motivations behind ESTEREL can be summed up by the
ESTEREL = reactivity
+ atomicity of reactions “perfect synchrony hypothesis,”
+ instantaneous broadcast
+ determinism
UNDERLYING MODEL
10. REACTIVITY
When activated with an input’event, a reactive system reacts by producing an output event.
Reactive systems are seen as “black boxes” that must be activated from outside in order to react;
They have input lines to receive input events from the outside, and output lines to produce output
events.
The life of a reactive system is divided into instants that are the moments //external clock//
where it reacts.
11. ATOMICITY OF REACTIONS
The basic hypothesis of ESTEREL is called the perfect synchrony hypothesis: it says that reactions
are instantaneous so that activations and productions of output are synchronous,
A reactive program is a function that produces a sequence of output events from a sequence of
input events.
Reactions are atomic, that is, program reactions cannot overlap.
In other words: there is no possibility to activate a system while it is reacting to the current
activation.
Hypothesis simplifies the reasoning about reactive systems as concurrency between reactions is
not to be considered.
Without the atomicity assumption, this concurrency would be a source of nondeterminism.
12. INSTANTANEOUS BROADCAST
Broadcast(Hand Raising) is limited to instants: the emission of a signal (using an emit statement) lasts
for the current instant.
ESTEREL broadcast has an important characteristic: emissions and receptions do no terminate the
current instant.
In other words, there can be several signal emissions and receptions in sequence within the same
instant.
This characteristic allows to program so called “instantaneous decisions” that are specific to
ESTEREL.
Hand Raising: when one wants to communicate, one raises its hand, so everybody can see.
13. Nondeterminism is completely thrown out of ESTEREL.
With traditional approaches, one has to choose between parallelism and
nondeterminism on one hand or determinism but sequentiality on the other
hand.
On the contrary, ESTEREL parallelism is deterministic.
Def : whose resulting behavior is entirely determined by its initial state and its
inputs which is not random.
DETERMINISM
14. HELLO WORLD! :)
The below program emits the output O as soon as both inputs A [HELLO] and B [WORLD!] have been received. Reset the
behavior whenever the input R is received.
module ABRO: // Programs consist of modules
input A, B, R; // inputs signals and
output O; // outputs signals
loop … each statement
implements the reset
await waits for the next cycle in
which its signal is present
|| operator means run the two
awaits in parallel
Parallel statements terminate
immediately when all branches
done.
Emit O makes signal O present
when A and B have both arrived
16. As a benefit of the formal approach,
ESTEREL programs can be compiled efficiently
into finite states machines and can generate
efficient code.
FINITE STATE STEPS
22. CONCLUSION
Separating a program into parallel components for better modularity
ESTEREL high level program that can be graphically simulated and proved using verification
systems;
It can be translated into several sequential languages and executed with great efficiency. But
it is difficult to compile.
However, ESTEREL can be useful in larger context when one has to produce several
automata that must cooperate.
Not an easy framework for checking causality but Scalability attractive for industrial users