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
Axel Poigné - GMD
Tel: +49 2241 14 2441