SIGNAL is a
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming l ...
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 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
Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and constructing buildings ...
, to refine detailed components down to
RTOS
A real-time operating system (RTOS) is an operating system (OS) for real-time applications that processes data and events that have critically defined time constraints. An RTOS is distinct from a time-sharing operating system, such as Unix, which m ...
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
A specification often refers to a set of documented requirements to be satisfied by a material, design, product, or service. A specification is often a type of technical standard.
There are different types of technical or engineering specificat ...
to
implementation
Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.
Industry-specific definitions
Computer science
In computer science, an implementation is a real ...
, from
abstraction
Abstraction in its main sense is a conceptual process wherein general rules and concepts are derived from the usage and classification of specific examples, literal ("real" or " concrete") signifiers, first principles, or other methods.
"An a ...
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, hu ...
, 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
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 well suited for cont ...
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
Da ...
and
block-diagram style with
array
An array is a systematic arrangement of similar objects, usually in rows and columns.
Things called an array include:
{{TOC right
Music
* In twelve-tone and serial composition, the presentation of simultaneous twelve-tone sets such that the ...
and
sliding window
A sliding window protocol is a feature of packet-based data transmission protocols. Sliding window protocols are used where reliable in-order delivery of packets is required, such as in the data link layer ( OSI layer 2) as well as in the Tran ...
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
Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
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
A specification often refers to a set of documented requirements to be satisfied by a material, design, product, or service. A specification is often a type of technical standard.
There are different types of technical or engineering specificat ...
to
implementation
Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.
Industry-specific definitions
Computer science
In computer science, an implementation is a real ...
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
In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
* A
Graphical User Interface
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows User (computing), users to Human–computer interaction, interact with electronic devices through graphical icon (comp ...
(editor + interactive access to compiling functionalities)
* Th
Sigalitool, an associated formal system for
formal verification
In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal met ...
and
controller synthesis. 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
Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract ...
(MDE) technologies. It consists of a set of Eclipse plug-ins which rely on the
Eclipse Modeling Framework
Eclipse Modeling Framework (EMF) is an Eclipse (software), Eclipse-based Model-driven architecture, modeling framework and Automatic programming, code generation facility for building tools and other applications based on a structured data model. ...
(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
In botany, a tree is a perennial plant with an elongated stem, or trunk, usually supporting branches and leaves. In some usages, the definition of a tree may be narrower, including only woody plants with secondary growth, plants that are ...
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
In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal met ...
, 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
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 well suited for cont ...
*
Lustre (programming language)
*
Synchronous programming language
*
Dataflow programming
In computer programming, dataflow programming is a programming paradigm that models a program as a directed graph of the data flowing between operations, thus implementing dataflow principles and architecture. Dataflow programming languages share ...
*
Programming Language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming l ...
*
Globally asynchronous locally synchronous
Globally asynchronous locally synchronous (GALS), in electronics, is an architecture for designing electronic circuits which addresses the problem of safe and reliable data transfer between independent clock domains. GALS is a model of computati ...
*
Formal verification
In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal met ...
*
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 system ...
*
Formal semantics of programming languages
In programming language theory, semantics is the rigorous mathematical study of the meaning of programming languages. Semantics assigns computational meaning to valid strings in a programming language syntax.
Semantics describes the processes ...
*
AADL
*
Simulink
Simulink is a MATLAB-based graphical programming environment for modeling, simulating and analyzing multidomain dynamical systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offers t ...
*
Avionics
Avionics (a blend of ''aviation'' and ''electronics'') are the electronic systems used on aircraft. Avionic systems include communications, navigation, the display and management of multiple systems, and the hundreds of systems that are fitt ...
*
System design
*
Asynchrony (computer programming)
Asynchrony, in computer programming, refers to the occurrence of events independent of the main program flow and ways to deal with such events. These may be "outside" events such as the arrival of signals, or actions instigated by a program that ...
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