About: Lustre (programming language) is a research topic. Over the lifetime, 299 publications have been published within this topic receiving 10417 citations.
TL;DR: The authors describe LUSTRE, a data flow synchronous language designed for programming reactive systems-such as automatic control and monitoring systems-as well as for describing hardware.
Abstract: The authors describe LUSTRE, a data flow synchronous language designed for programming reactive systems-such as automatic control and monitoring systems-as well as for describing hardware. The data flow aspect of LUSTRE makes it very close to usual description tools in these domains (block-diagrams, networks of operators, dynamical sample-systems, etc.), and its synchronous interpretation makes it well suited for handling time in programs. Moreover, this synchronous interpretation allows it to be compiled into an efficient sequential program. The LUSTRE formalism is very similar to temporal logics. This allows the language to be used for both writing programs and expressing program properties, which results in an original program verification methodology. >
TL;DR: This paper presents the language LUSTRE, whose main application field is the programming of automatic control and signal processing systems, and uses it as a basis for designing and programming these systems.
Abstract: This paper presents the language LUSTRE, whose main application field is the programming of automatic control and signal processing systems. In this field, design is tra- ditionally driven by means of two types of tools. First, specifications are often systems of equations (differential or finite difference equations, boolean equations, . . .). Second, implementations are often nets of operators connected with wires (switches, gates, analog diagrams). Such tools present several ad&tag- as a basis for
TL;DR: This work describes its semantics by means of structural inference rules and shows how to use this semantics in order to generate efficient sequential code, namely, a finite state automaton which represents the control of the program.
Abstract: LUSTRE is a synchronous data-flow language for programming systems which interact with their environments in real-time. After an informal presentation of the language, we describe its semantics by means of structural inference rules. Moreover, we show how to use this semantics in order to generate efficient sequential code, namely, a finite state automaton which represents the control of the program. Formal rules for program transformation are also presented.
TL;DR: The authors present the basics of the ESTEREL reactive model of synchronous parallel systems, based on instantaneous communications and decisions, and it is shown how programs can be compiled into finite state sequential machines for efficient execution.
Abstract: The authors present the basics of the ESTEREL reactive model of synchronous parallel systems. The ESTEREL programming style, based on instantaneous communications and decisions, is illustrated through the example of a mouse handler. The ESTEREL formal semantics is described, and it is shown how programs can be compiled into finite state sequential machines for efficient execution. The implementation is described with the ESTEREL environment, including simulation, and verification and validation tools. Some ESTEREL uses in various contexts are reported. >
TL;DR: The central idea of the paper is to base this extension of a synchronous data-flow language such as Lustre with imperative features expressed in terms of powerful state machine à la SyncChart on the use of clocks, translating imperative constructs into well clocked data- flow programs from the basic language.
Abstract: This paper presents an extension of a synchronous data-flow language such as Lustre with imperative features expressed in terms of powerful state machine a laSyncChart This extension is fully conservative in the sense that all the programs from the basic language still make sense in the extended language and their semantics is preservedFrom a syntactical point of view this extension consists in hierarchical state machines that may carry at each hierarchy level a bunch of equations This proposition is an alternative to the joint use of Simulink and Stateflow but improves it by allowing a fine grain mix of both stylesThe central idea of the paper is to base this extension on the use of clocks, translating imperative constructs into well clocked data-flow programs from the basic language This clock directed approach is an easy way to define a semantics for the extension, it is light to implement in an existing compiler and experiments show that the generated code compete favorably with ad-hoc techniques The proposed extension has been implemented in the ReLuC compiler of Scade/Lustre and in the Lucid Synchrone compiler