Lustre (programming language)
Appearance
Lustre is a
nuclear power plants
.
Structure of Lustre programs
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.
Inner variables
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.
Special operators
pre p |
Returns the previous value of p |
p -> q |
Set p as the initial value of the expression q |
Examples
Edge detection
node Edge (X : bool) returns (E : bool);
let
E = false -> X and not pre X;
tel
See also
References
- ^ [1] N. Halbwachs et al. The Synchronous Data Flow Programming Language LUSTRE. In Proc. IEEE 1991 Vol. 79, No. 9. Accessed 17 March 2014.
- ^ "SCADE Success Stories". Retrieved 8 June 2013.
External links
- Synchrone Lab Archived 2020-11-25 at the Wayback Machine Official website
- SCADE product page