Loading article…
| パラダイム | データフロー、宣言型、同期 |
|---|---|
| 初登場 | 1980年代 |
Lustreは、リアクティブシステムをプログラミングするための、正式に定義された宣言型の同期データフロープログラミング言語です。1980年代初頭の研究プロジェクトとして始まりました。言語の正式な発表は、1991年のIEEE Proceedingsに掲載されています。[ 1 ] 1993年 には、Esterel Technologiesが開発した産業環境SCADEのコア言語として、商用製品での実用的な産業用使用へと進化しました。現在では、航空機、[2] ヘリコプター、原子力発電所の重要な制御ソフトウェアに使用されています。
Lustre プログラムの構造
Lustre プログラムは、次のように記述される一連のノード定義です。
ノード foo ( a : bool )は ( b : bool )を返します。b = not aとします。tel
ここでfoo、 はノードの名前、aはこのノードの単一入力の名前、 はb単一出力の名前です。この例では、ノードはfoo入力の否定を返しますa。これは期待される結果です。
内部変数
追加の内部変数は次のように宣言できます。
ノード Nand ( X , Y : bool )は ( Z : bool )を返し ます。var U : boolです。let U = X and Yです。Z = not Uです。tel
注: 方程式の順序は重要ではなく、行の順序によってU = X and Y;結果Z = not U;が変わることはありません。
特殊演算子
例
エッジ検出
ノード Edge ( X : bool ) は( E : bool )を返します 。let E = false -> X and not pre X ; tel
参照
参考文献
- ^ [1] N. Halbwachs他「同期データフロープログラミング言語LUSTRE」。IEEE 1991年第79巻第9号、Proc. 2014年3月17日にアクセス。
- ^ 「SCADE Success Stories」 。 2013年6月8日閲覧。
外部リンク
- Synchrone Lab 2020-11-25にWayback Machineでアーカイブされました公式ウェブサイト
- SCADE製品ページ
