Lustre_(プログラミング言語)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Lustre_(プログラミング言語)の意味・解説 

Lustre (プログラミング言語)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/12/19 15:26 UTC 版)

Lustreは、リアクティブ システムをプログラミングするための、形式記述 宣言型 同期英語版 データフロー プログラミング言語である。1980年代初頭に研究プロジェクトとして始まった。この言語の正式なプレゼンテーションは、IEEEの1991年予稿集で見つけることができる[1]。1993年エステレル・テクノロジーズが開発した商用製品SCADEにEsterelと統合され中核言語として採用された[2]。現在では航空機、ヘリコプター、原子力発電所のクリティカルな制御ソフトウェアに使用されている。

Lustreのプログラム構造

Lustre プログラムは、次のようにnodeで定義される文で記述される。

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;の順序で、結果は変わらない。

演算子

通常の変数型はブール値、整数型、実数型、タプル型がある。

  • 算術演算子: + - * / div mod
  • 論理演算子: and or not
  • 比較演算子: == < <= > >=
  • 条件付きアクション: if then else

特殊演算子

pre p 以前のpの値を返す
p -> q qの初期値として pを設定する
X when c c=trueのときのXをサンプリングする。c=falseのときX when cは存在しない[3]
current(X when c) 間欠した変数を共通クロックにあわせて投影する[3]

プログラム例

エッジ検出

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

関連項目

出典

  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. ^ 形式手法適用調査 調査概要資料”. IPA 独立行政法人 情報処理推進機構. 2022年6月24日閲覧。
  3. ^ a b The Lustre Language Synchronous Programming”. 2022年6月24日閲覧。

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  
  •  Lustre_(プログラミング言語)のページへのリンク

辞書ショートカット

すべての辞書の索引

「Lustre_(プログラミング言語)」の関連用語

Lustre_(プログラミング言語)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Lustre_(プログラミング言語)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのLustre (プログラミング言語) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS