Lustre (programming language)

Source: Wikipedia, the free encyclopedia.

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. ^ [1] N. Halbwachs et al. The Synchronous Data Flow Programming Language LUSTRE. In Proc. IEEE 1991 Vol. 79, No. 9. Accessed 17 March 2014.
  2. ^ "SCADE Success Stories". Retrieved 8 June 2013.

External links