Over the past ten years, the family of synchronous languages (Special Section of the Proc. IEEE 79 (9) (1991)) has been very successful in o ering domain-speciÿc, formally deÿned languages and programming environments for safety-critical systems. Among them, Lustre is well-suited for the development of regulation systems, which are ÿrst designed by control engineers, and can then be programmed as block-diagrams. Automatic generation of C code provides the embedded software. The success of Lustre showed that it is a good idea to o er domain-speciÿc languages and constructs to reduce the gap between the ÿrst design of a system (for instance a control law) and the program written for it. When the structure of the ÿrst design has to be encoded into the available constructs of a general-purpose programming language, the interesting information is likely to be lost somewhere on the way from the original design to the actual implementation. This may have consequences on the e ciency of the code produced, or even on the correctness of the design. Working with the systems Lustre is well-suited for, we observed that they are often speciÿed informally using the notion of running modes. However, there seemed to exist no language in which the mode-structure of a complex system could be expressed directly. Following the approach of domain-speciÿc languages, we proposed to extend Lustre with a new construct, called mode-automaton, devoted to the description of these running modes of regulation systems. In this paper, we deÿne the language of mode-automata and its semantics, give some ideas on the compilation process, illustrate the approach with the example of the production
In the domain of synchronous languages REF , mode automata and the notion of running modes have been introduced, to reduce the gap between the initial design of a system and the program written for it.
Mode-Automata: a new domain-specific construct for the development of safe critical systems
Sci. Comput. Program.
Sci. Comput. Program.
Computer Science