SWB - Synchronie Workbench
by Axel Poigné
The Synchronie Workbench is a platform for synchronous object-oriented
programming for reactive systems. Reactive systems are normally embedded
in electronic products, mass transportation systems, and in industrial
plants. Since malfunction of such systems may well impose economic penalties
on industry, or introduce unacceptable risks of personal injury or environmental
damage, industry relies to a great extent on their design and safe implementation:
customers and the public do too. Synchronous program-ming is considered
as particularly well suited for developing reactive systems.
Synchronous programming reinterprets the basic idea of hardware design,
and of discrete engineering formalisms, namely that processes run on a
clock; a system reacts to each stimulus of the environ-ment instantaneously
meaning that the reaction consumes no (observable) time, or in hardware
terms: every reaction terminates before the next 'clock tick'. Software
design is less accustomed to this idea which, however, should be the basis
of systems with hard real time constraints. For these a reaction must be
guaranteed to take place within a specified reaction time.
By now there are several programming languages which are implicitly
or explicitly based on the synchronous paradigm:
- Statecharts and Argos, state-based graphical languages for hierarchical
automata
- Esterel, an imperative language with sophisticated preemption mechanisms
- Lustre, a multi-clocked data-flow language.
The Synchronie Workbench allows freely to combine synchronous languages
each of which addresses quite different aspects of system design. It supports
compilation, simulation, testing and verification tools, and enhances synchronous
programming by an object-oriented design language embeddedEifel. It is
generic in that new synchronous dialects are easy to integrate. Further
it provides textual and graphical editors.
The rationale of such an integration is that, for instance, a data-flow
language such as Lustre is better suited for continuous control problems
such as in navigation or signal processing, while Esterel and Argos excel
in discrete, interrupt driven control problems. Statecharts or Argos are
specifically useful as structuring mechanism due to their hierarchical
nature. Finally, object-oriented design style provides structuring mechanisms
to support system development. Real-life examples typically address all
these aspects.
Since all synchronous programming languages depend on the same semantic
framework, it is possible to integrate the different programming styles
within a single design environment, the Synchronie Workbench. The compilation
of the reactive part is factored into two steps; the source code translates
into a proprietary intermediate code, synchronous automata, which then
translates via back-end compilers into some target code, be it some high-level
language such as C or VHDL, assembler code, or netlists for generation
of hardware.

To summarize: the Synchrony Workbench supports the design of reactive
systems starting with structural, behavioural, and logical specifications
and ending with an efficient hardware or software solution for which properties
such as reactivity or satisfaction of timing constraints can be guaranteed.
The work contributes to the ESPRIT Long Term Research Project SYRF
Synchronous reactive Formalisms, and to the ESPRIT Project CRISYS
Critical Instrumentation and Control Systems, with partners being BSSE
(Germany), Commissariat à l'Energie Atomique (France), Electricité
de France (France), Elf (France), INRIA, Linköping University (Sweden),
Logikkonsult (Sweden), Schneider Electric (France), Saab Military Aircraft
(Sweden), Siemens Electrocom (Germany), Université Joseph Fourier
(France), Verilog (France). More information on the web at: http://set.gmd.de/EES/synchronie/swb.html
Please contact:
Axel Poigné - GMD
Tel: +49 2241 14 2441
E-mail: axel.poigne@gmd.de