Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
Get a full dump of the dictionary:
List of Names
- Language type:
The Esterel language is a modeling
and specification language designed for the
programming of synchronous reactive systems.
Developed in an academic setting, it is
used for studying parallel computation and
also for analysis and implementation of
Because Esterel is specialized for
representing reactive, signal-driven
systems, it has two fundamental kinds
of objects: data elements and signals.
Data elements correspond to variables
in conventional structured languages,
and may be declared at module or local
scope. Signals and sensors are dynamic
values that correspond to the
interactions of the system being modeled
with the outside world.
Primitive data types supported by Esterel
include booleans, integers, reals, and
Esterel supports several mechanisms of code
organization: modules, procedures, functions,
and tasks. Parallelism and condition
handling must be explicitly specified.
Synchronization is normally provided by
reacting to external signals, using the
await statement or by testing
for sensor values; output can be specified
with the emit statement.
Esterel also allows a programmer (engineer)
to assert exclusion and synchronicity
relationships about signals.
The Esterel compiler and verification tools
are available free from INRIA, France. They
run on a variety of Unix systems.
The current version, as of late 1998, is
G. Berry, L. Cosserat, et al, CMA France, 1983
- See Also:
The Esterel language is designed to be
translated into a variety of types of
host languages, depending on the
intended use of the Esterel model.
An Esterel program can use data types
supported by the host language in
addition to the Esterel primitive types.
While it is a programming language, Esterel
evolved in an academic environment that is
essentially focused on engineering. The
design of the language reflects the priorities
of engineers designing synchronous control
systems and logic circuits, unlike languages
such as CSP which reflect a computer science
- Sample code:
A module for
computing a running average,
from Programming a Reflex Game in Esterel V3 by
R. Bernhard, G. Berry, and other authors, 1989.
var TOTAL := 0, NUMBER := 0, : integer in
every immediate INCREMENT_AVERAGE do
TOTAL := TOTAL + ? INCREMENT_AVERAGE;
NUMBER := NUMBER + 1;
emit AVERAGE_VALUE (TOTAL / NUMBER)
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is firstname.lastname@example.org
[Ziring MicroWeb Home]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.