Esterel

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 initiated a normalization process with the IEEE. The [http://www.esterel-technologies.com/files/Esterel-Language-v7-Ref-Man.pdf Esterel v7 Reference Manual Version v7 30 – initial IEEE standardization proposal] is publicly available.

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.

ignals

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, and 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.

ignal Coherence rules

* Each signal is only present or absent in a cycle, never both.
* All writers run before any readers do.Thus present A else emit A endis an erroneous program.

The language constructs

The primitive (elementary) Esterel statements

:# present S then stmt1 else stmt2 end -- If signal "S" is present in the current instant, immediately run stmt1, otherwise run stmt2.:# 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" in sequence.

:# 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.:# suspend stm when S -- suspend the execution of the body in instants where S is present.

Example (ABRO)

The following program emits 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

* Model of time gives programmer precise control
* Concurrency convenient for specifying control systems
* Completely deterministic
* Finite-state language
** Execution time predictable
** Much easier to verify formally
* Can be implemented in hardware as well as in software

Disadvantages of Esterel

* Finite-state nature of the language limits flexibility (but expressivity is sufficient for the chosen application field)
* Semantic challenges
** Avoiding causality violations is often difficult
** Difficult to compile in the general case, but simple correctness criteria exist

ee also

*Esterel Studio, an esterel IDE
*the lustre programming language, a cousin language.
*SCADE
*Esterel Technologies, the company behind Esterel Studio and SCADE.

External links

* [http://www.esterel-technologies.com/ Esterel Technologies, Inc.]
* [http://www.esterel-technologies.com/technology/scientific-papers/overview.html Scientific Papers]
* [http://www-sop.inria.fr/esterel.org/ Esterel Web]
* [http://www-sop.inria.fr/meije/esterel/esterel-eng.html The Esterel Language]
* [http://www1.cs.columbia.edu/~sedwards/cec/ The Columbia Esterel Compiler: An open-source Esterel compiler]


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Esterel — ist der Name eines französischen Mittelgebirges, siehe Esterel (Gebirge) einer Programmiersprache, siehe Esterel (Programmiersprache) ein französischer Reisemobil und Wohnwagenhersteller, siehe Esterel (Firma) Diese Seite ist eine …   Deutsch Wikipedia

  • Esterel — ou Estérel (monts de l ) chaîne primaire du S. E. de la France, qui touche la Méditerranée …   Encyclopédie Universelle

  • Estérel — Esterel ou Estérel (monts de l ) chaîne primaire du S. E. de la France, qui touche la Méditerranée …   Encyclopédie Universelle

  • Estérel — Estérel, Gebirgszug der Kalkalpenzone der Westalpen, in den französischen Departements Var u. Seealpen, reicht an der Mittelmeerküste von Draguignan bis Cannes, wird südwestlich durch das Tal des Argens von der Montagne des Maures geschieden und… …   Meyers Großes Konversations-Lexikon

  • Esterel — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Le massif de l Esterel est un massif montagneux cristallin situé en Provence. En informatique, Esterel est un langage de programmation. L Escadron de… …   Wikipédia en Français

  • Estérel — 43° 25′ 31″ N 6° 46′ 06″ E / 43.425178, 6.768377 …   Wikipédia en Français

  • Esterel (Programmiersprache) — Esterel ist eine synchrone imperative Programmiersprache, deren Ursprung auf den Anfang der 80er und die Zusammenarbeit mehrerer Wissenschafter (u. a. Gérard Berry) zurückzuführen ist. Inhaltsverzeichnis 1 Ursprung 2 Semantik 3 Optimierung …   Deutsch Wikipedia

  • Esterel Technologies — is a supplier of model based design, validation, and code generation tools for safety critical software and hardware applications. Esterel’s tools create formal specifications that produce correct by construction, automated implementation of… …   Wikipedia

  • Esterel (Langage) — Esterel est le nom d un langage de programmation apparu dans les années 1980. Son « père » est Gérard Berry. Ce langage est dit synchrone et réactif. Il est impératif et permet l expression simple du parallélisme, de la préemption. Il… …   Wikipédia en Français

  • Estérel Resort, Spa & Lac — (Esterel,Канада) Категория отеля: 4 звездочный отель Адрес: 39 Boulevard F …   Каталог отелей

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”