Loading AI tools
Programming language From Wikipedia, the free encyclopedia
Lustre is a formally defined, declarative, and synchronous dataflow programming language for programming reactive systems. It began as a research project in the early 1980s. A formal presentation of the language can be found in the 1991 Proceedings of the IEEE.[1] In 1993 it progressed to practical, industrial use in a commercial product as the core language of the industrial environment SCADE, developed by Esterel Technologies. It is now used for critical control software in aircraft,[2] helicopters, and nuclear power plants.
A Lustre program is a series of node definitions, written as:
node foo(a : bool) returns (b : bool);
let
b = not a;
tel
Where foo
is the name of the node, a
is the name of the single input of this node and b
is the name of the single output.
In this example the node foo
returns the negation of its input a
, which is the expected result.
Additional internal variables can be declared as follows:
node Nand(X,Y: bool) returns (Z: bool);
var U: bool;
let
U = X and Y;
Z = not U;
tel
Note: The equations order doesn't matter, the order of lines U = X and Y;
and Z = not U;
doesn't change the result.
pre p | Returns the previous value of p |
p -> q | Set p as the initial value of the expression q |
node Edge (X : bool) returns (E : bool);
let
E = false -> X and not pre X;
tel
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.