热门问题
时间线
聊天
视角

Lustre語言

来自维基百科,自由的百科全书

Remove ads

Lustre形式化定義的、聲明式同步式數據流程編程語言,用於響應式系統編程。它在1980年代前期成為了研究專案,受到過Lucid語言的影響[1]。這個語言的形式表述可以在1991年的《Proceedings of the IEEE》找到[2]。在1993年,它發展進入實際的商業和工業使用,成為一個商業產品,它是愛斯特爾技術公司英語Esterel Technologies開發的工業環境SCADE的核心語言。它被用於在空中巴士[3]空客直升機核電廠的關鍵控制軟件中。

快速預覽 編程範型, 設計者 ...
Remove ads

Lustre程式的結構

Lustre程式是一系列的「節點」定義,寫為:

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

這裏的foo是節點的名字,a是這個節點的單一輸入的名字,而b是單一輸出的名字。在這個例子中,節點foo返回對它的輸入a的否定,這是於預期的結果。

內在變量

額外的內部變量可以聲明如下:

 node Nand(X,Y: bool) returns (Z: bool);
   var U: bool;
 let
   U = X and Y;
   Z = not U;
 tel

注意:等式的次序並不重要,行U = X and Y;Z = not U;的次序不改變結果。

特殊算子

pre p 返回p以前的值
p -> q 設置p為表達式q的初始值

例子

邊緣檢測

node Edge (X : bool) returns (E : bool);
let
  E = false -> X and not pre X;
tel

參見

參照

Loading content...

外部連結

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads