SIGNAL is a
programming language based on synchronized
data-flow (flows + synchronization): a process is a set of equations on elementary flows describing both data and control.
The SIGNAL
formal model provides the capability to describe
systems
A system is a group of interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, surrounded and influenced by its environment, is described by its boundaries, structure and purpose and express ...
with
several clocks (polychronous systems) as
relational specifications. Relations are useful as partial specifications and as specifications of
non-deterministic devices (for instance a non-deterministic
bus
A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a road vehicle that carries significantly more passengers than an average car or van. It is most commonly used in public transport, but is also in use for cha ...
) or external processes (for instance an unsafe car driver).
Using SIGNAL allows one to
specify an application, to design an
architecture, to refine detailed components down to
RTOS or hardware description. The SIGNAL model supports a
design methodology
Design methods are procedures, techniques, aids, or tools for designing. They offer a number of different kinds of activities that a designer might use within an overall design process. Conventional procedures of design, such as drawing, can be reg ...
which goes from
specification to
implementation, from
abstraction to
concretization
In metaphysics, the distinction between abstract and concrete refers to a divide between two types of entities. Many philosophers hold that this difference has fundamental metaphysical significance. Examples of concrete objects include plants, Hum ...
, from
synchrony to
asynchrony
Asynchrony is the state of not being in synchronization.
Asynchrony or asynchronous may refer to:
Electronics and computing
* Asynchrony (computer programming), the occurrence of events independent of the main program flow, and ways to deal with ...
.
SIGNAL has been mainly developed i
INRIAhttp://www.inria.fr/en/en/teams/espresso Espresso team] since the 1980s, at the same time as similar programming languages,
Esterel and
Lustre.
A brief history
The SIGNAL language was first designed for
signal processing applications in the beginning of the 1980s. It has been proposed to answer the demand of new
domain-specific language for the design of
signal processing applications, adopting a
dataflow
In computing, dataflow is a broad concept, which has various meanings depending on the application and context. In the context of software architecture, data flow relates to stream processing or reactive programming.
Software architecture
Dataf ...
and
block-diagram style with
array and
sliding window operators. P. Le Guernic, A. Benveniste, and T. Gautier have been in charge of the language definition. The first paper on SIGNAL was published in 1982, while the first complete description of SIGNAL appeared in the PhD thesis of T. Gautier. The symbolic representation of SIGNAL via z/3z (over
1,0,1
Onekama ( ) is a village in Manistee County in the U.S. state of Michigan. The population was 411 at the 2010 census. The village is located on the shores of Portage Lake and is surrounded by Onekama Township. The town's name is derived from ...
has been introduced in 1986. A full compiler of SIGNAL based on the clock calculus on hierarchy of Boolean clocks, was described by L. Besnard in his PhD thesis in 1992. The clock calculus has been improved later by T. Amagbegnon with the proposition of arborescent canonical forms.
During the 1990s, the application domain of the SIGNAL language has been extended into general embedded and real-time systems. The relation-oriented specification style enabled the increasing construction of the systems, and also led to the design considering multi-clocked systems, compared to the original single-clock-based implementation of Esterel and Lustre. Moreover, the design and implementation of distributed embedded systems were also taken into account in SIGNAL. The corresponding research includes the optimization methods proposed by B. Chéron, the clustering models defined by B. Le Goff, the abstraction and separate compilation formalized by O. Maffeïs, and the implementation of distributed programs developed by P. Aubry.
The Polychrony Toolsets
The Polychrony toolset is an
open-source development environment for critical/embedded systems based on SIGNAL, a
real-time polychronous
data-flow language. It provides a unified
model-driven environment to perform design exploration by using top-down and
bottom-up design methodologies formally supported by design model transformations from
specification to
implementation and from
synchrony to asynchrony. It can be included in
heterogeneous
Homogeneity and heterogeneity are concepts often used in the sciences and statistics relating to the uniformity of a substance or organism. A material or image that is homogeneous is uniform in composition or character (i.e. color, shape, siz ...
design systems with various input formalisms and output languages.
Polychrony is a set of tools composed of:
* A SIGNAL batch
compiler
* A
Graphical User Interface (editor + interactive access to compiling functionalities)
* Th
Sigalitool, an associated formal system for
formal verification and
controller synthesis
Controller may refer to:
Occupations
* Controller or financial controller, or in government accounting comptroller, a senior accounting position
* Controller, someone who performs agent handling in espionage
* Air traffic controller, a person w ...
. Sigali is developed together with th
INRIA
project.
The SME environment
The SME (SIGNAL Meta under Eclipse) environment is a
front-end of Polychrony in the
Eclipse
An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
environment based on
Model-Driven Engineering (MDE) technologies. It consists of a set of Eclipse plug-ins which rely on the
Eclipse Modeling Framework (EMF). The environment is built around SME, a
metamodel of the SIGNAL language extended with
mode automata[J.-P. Talpin, C. Brunette, T. Gautier, and A. Gamatié. Polychronous mode automata. Proceedings of the 6th ACM & IEEE International conference on Embedded software (EMSOFT '06), ACM Press, October 2006, 83-92.] concepts.
The SME environment is composed of several plug-ins which correspond to:
* A
reflexive editor: a
tree view allowing to manipulate models conform to the SME metamodel.
* A graphical modeler based on th
TopCasedmodeling facilities (cf. previous picture).
* A reflexive editor and an Eclipse view to create compilation scenarios.
* A direct connection to the Polychrony services (
compilation,
formal verification, etc.).
* A
documentation
Documentation is any communicable material that is used to describe, explain or instruct regarding some attributes of an object, system or procedure, such as its parts, assembly, installation, maintenance and use. As a form of knowledge manageme ...
and model examples.
See also
*
Esterel
*
Lustre (programming language)
*
Synchronous programming language
*
Dataflow programming
*
Programming Language
*
Globally asynchronous locally synchronous
*
Formal verification
*
Model checking
In computer science, model checking or property checking is a method for checking whether a finite-state model of a system meets a given specification (also known as correctness). This is typically associated with hardware or software systems ...
*
Formal semantics of programming languages
*
AADL
*
Simulink
*
Avionics
*
System design
Systems design interfaces, and data for an electronic control system to satisfy specified requirements. System design could be seen as the application of system theory to product development. There is some overlap with the disciplines of system an ...
*
Asynchrony (computer programming)
Notes and references
{{Reflist, colwidth
External links
The INRIA/IRISA Espresso teamThe Polychrony toolset dedicated to SIGNAL(official website of Polychrony)
Synchrone Lab(the synchronous language Lustre)
(the synchronous Language Esterel)
Declarative programming languages
Synchronous programming languages
Hardware description languages
Formal methods
Software modeling language