Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Lustre (programming language)

From Wikipedia, the free encyclopedia
Programming language
For the cluster filesystem, seeLustre (file system).
Lustre
ParadigmsDataflow,declarative,synchronous
First appeared1980s

Lustre is aformally defined,declarative, andsynchronousdataflow 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 environmentSCADE, developed byEsterel Technologies. It is now used for critical control software inaircraft,[2]helicopters, andnuclear power plants.

Structure of Lustre programs

[edit]

A Lustre program is a series ofnode definitions, written as:

node foo(a : bool) returns (b : bool);let  b = not a;tel

Wherefoo is the name of the node,a is the name of the single input of this node andb is the name of the single output.In this example the nodefoo returns the negation of its inputa, which is the expected result.

Inner variables

[edit]

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 linesU = X and Y; andZ = not U; doesn't change the result.

Special operators

[edit]
prepReturns the value ofp in the previous cycle
p->qSetp as the initial value of the expressionq

Examples

[edit]

Rising Edge detection

[edit]
node RisingEdge (X : bool) returns (E : bool);let  E = X and not pre X;tel

Falling Edge detection

[edit]
node FallingEdge (X : bool) returns (E : bool);let  E = not X and pre X;tel

See also

[edit]

References

[edit]
  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". Archived fromthe original on 30 January 2019. Retrieved8 June 2013.

External links

[edit]
Retrieved from "https://en.wikipedia.org/w/index.php?title=Lustre_(programming_language)&oldid=1322437977"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp