The synchronous data flow programming language LUSTRE

@inproceedings{Halbwachs1991TheSD,
  title={The synchronous data flow programming language LUSTRE},
  author={Nicolas Halbwachs and Paul Caspi and Pascal Raymond and Daniel Pilaud},
  year={1991}
}
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… 

Figures and Tables from this paper

Programming and Verifying Real-Time Systems by Means of the Synchronous Data-Flow Language LUSTRE
TLDR
It is shown, using a simple example, how the language LUSTRE and its associated verification tool LESAR can be used to design a program, to specify its critical properties, and to verify these properties.
A functional extension of Lustre
TLDR
Lustre is shown to give sense to both higher order, and dynamical synchronous data-ow networks, which can thus be expected to share the same eecient compiling techniques.
Synchronous Functional Programming : The Lucid Synchrone Experiment ∗
TLDR
This chapter is a tutorial introduction to the Lucid Synchrone language, its aim is to show that techniques can be applied, at the language level, to ease the specification, implementation, and verification of reactive systems.
Mixing signals and modes in synchronous data-flow systems
TLDR
This paper pursues existing solutions by providing two constructs: a general form of state machines called parameterized state machines, and valued signals, as can be found in ESTEREL, which allow for a much more direct and natural programming of systems that combine dataflow and state-machines.
Reactive parallel processing for synchronous dataflow
TLDR
This work proposes a special parallel processor, designed to execute programs written in the synchronous dataflow language Lustre, or its graphical variant Scade, which achieves an efficient but still predictable execution.
Testing Techniques for Data-Flow Synchronous Programs
TLDR
Three approaches to the problem of testing synchronous data-flow programs written in LUSTRE are presented, and an automatic test data generation process is described using LESAR, a tool designed to automatically prove the satisfaction of safety properties on LUSTre programs.
Modular resetting of synchronous data-flow programs
TLDR
An extension of a synchronous dataow language providing full functionality with a modular reset operator is presented, obtained by extending the clock calculus of the initial language and providing a compilation method.
A formally verified compiler for Lustre
TLDR
This work shows that repeated execution of the generated assembly code faithfully implements the dataflow semantics of source programs, and resolves two key technical challenges.
Towards a higher-order synchronous data-flow language
TLDR
This is the first higher-order synchronous data-flow language where stream functions are first class citizens, and the formal semantics of the underlying calculus is given.
Mechanized semantics and verified compilation for a dataflow synchronous language with reset
TLDR
New semantic rules that are suitable for mechanized reasoning, a novel intermediate language for generating optimized code, and proofs of correctness for the associated compilation passes are included.
...
...

References

SHOWING 1-10 OF 78 REFERENCES
Using the Declarative Language LUSTRE for Circuit Verification
TLDR
It is explained how the language LUSTRE can be used to describe synchronous digital circuits at different levels of abstraction and how the associated verification tool LESAR automatically proves the correctness of a circuit.
LUSTRE: A declarative language for programming synchronous systems*
TLDR
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.
Specifying, Programming and Verifying Real-Time Systems Using a Synchronous Declarative Language
TLDR
It is shown that the finite automaton produced by the Lustre compiler may be used for verifying many logical properties, by model checking, in the real-time system Lustre.
The VAL Language: Description and Analysis
TLDR
Analysis of the language shows that VAL meets the critical needs for a data flow environment, and encourages programmers to think in terms of general concurrency, enhances readability, and possesses a structure amenable to verification techniques.
LUCID: The data flow programming language
TLDR
The primary objective of this book is to prove that Dataflow is a real alternative to sequential/imperative computing, and that dataflow algorithms can be expressed naturally and concisely in LUCID.
The Semantics of a Simple Language for Parallel Programming
  • G. Kahn
  • Computer Science
    IFIP Congress
  • 1974
TLDR
A simple language for parallel programming is described and its mathematical properties are studied to make a case for more formal languages for systems programming and the design of operating systems.
Model-checking for real-time systems
TLDR
An algorithm is developed for model checking, that is, for determining the truth of a TCTL formula with respect to a timed graph, and it is argued that choosing a dense domain, instead of a discrete domain, to model time does not blow up the complexity of the model-checking problem.
Functional specification of time-sensitive communicating systems
TLDR
A formal model and a logical framework for the functional specification of time-sensitive communicating systems and their interacting components are outlined and a rational is given for the chosen concepts of thefunctional specification technique.
Reasoning in Interval Temporal Logic
TLDR
This paper discusses interval temporal logic (ITL), a formalism that augments standard predicate logic with operators for time-dependent concepts and compares ITL with the logic-based programming languages Lucid and Prolog.
Functional Specification of Time Sensitive Communicating Systems
  • M. Broy
  • Computer Science
    REX Workshop
  • 1989
TLDR
A formalism for the functional specification of time sensitive communicating systems and their components is outlined and the application of the specification method to timed communicating functions is demonstrated.
...
...