Luster(プログラミング言語) – ウィキペディア

before-content-x4

光沢 同期宣言プログラミング言語です。

after-content-x4

Lusterは、Esterelのように、1980年代の初めに作成されました。ここでも、それは適切なプログラミング言語とソフトウェアシステムが不足していませんでした 反応システム 決定的なイベント。数人のフランスの研究者の合併により、「Synchronian Language School」が作成されました。研究者の提案は、これが最も単純だったため、光沢を決定しました。 Lusterはそれ以来非常に開発されており、現在、さまざまなツール(コンパイラ、シミュレーター、テストツール、コードジェネレーター)を備えたバージョンV4で利用可能になりました。

一般的に、航空機や発電所の制御などのセキュリティ批判的なシステムを含む、リアクティブシステムなどの光沢が使用されます。たとえば、Airbus A320の飛行制御、原子力発電所の緊急閉鎖、光沢のない地下鉄の制御が実装されました。 [初め] 光沢は、主にこのタイプのシステムのプログラミングと制御に使用されます。

光沢のあるプログラム構造は、演算子のネットワークとしてグラフィカルに提示できます。サブプログラム(ノード)も独自の演算子として表示され、それに応じて使用されます。

光沢には通常のタイプの変数のほんの一部しかなく、ブール、整数、本物、および房のみがあります。基本的なものは、オペレーターから入手できます。

  • 算術演算子: + - * / divに対して
  • ブールオペレーター: そしてかどうか
  • リレーショナル演算子: == << = >> =
  • 条件付きアクション:その場合はそうです その場合はそうであれば

4つの川のオペレーター(時間演算子)もあります( 事前 - > いつ 現在 )。これらは、特にデータフローアクセスに使用されます。たとえば、オペレーターが配信します 事前 変数の前の時間の条件。 [2]

オペレーター - > (続く)は、変数の初期化に使用されます。たとえば、手段を意味します x = 0-> pre(x) + 1 、 それか バツ 最初に0がISであり、以前の値は他のすべての人に対して取得され、1増加します。 [3]

以下は小さな光沢コードの例です。 [4]

after-content-x4
ノードa(b:bool; i:int; x:real)returns(y:real);
   var J:int; Z:リアル;
   j = if b then et then 0 else i;
       z = b(j、x);
       y = if b then pre(z)else c(z); <
   電話 

この例では、「a」という名前の手順(ノード)が記載されています。使用される他の「B」および「C」手順は、プログラムの他の場所で定義されています。 「a」は3つの入力フロー(b、i、x)で初期化され、戻って(y)を与えます。

Lusterでのタイミングは、おそらくこの言語の主な利点です。これは論理的なタイミングに基づいており、離散時間でカウントされます。 [4] ただし、論理的なタイミングでは、個々の時間の間の長さや時間については何も述べていません。むしろ、それは現在および/または別の時間の間の変数と式の値への参照です。値キューの最後に新しい値が常に追加されます。

接続変数 – クロック
可変x バツ 0 バツ 初め バツ 2 バツ 3 バツ n
時計 0 初め 2 3 n

したがって、どの値が有効であるかは正確に定義されています。

Lustreコンパイラは、プログラムコードの構文をチェックするだけでなく、他の重要な要件もチェックします。 [2]

  • 定義制御:ここでは、各変数が実際に1回しか定義されていないかどうかを確認します
  • クロックの一貫性:すべての組み合わせた式と変数には、同じクロックベースが必要です
  • 非回復的な呼び出し:再帰ビューは光沢が許可されていません
  • 非ヌル価値:非2時間依存の変数と費用に対してのみ許可され、他のすべての人を初期化する必要があります。

コンパイラによって生成されたマシンは、追加のツール(Lurette、Lucky)で検証できます。 [5] 光沢は主にセキュリティの批判的なシステムに使用され、しばしば人間の生活に依存するため、検証は非常に重要な視点です。たとえば、列車が継続するかどうかは関連していませんが、列車が赤い信号で持続するかどうかです。 [2]

  1. Verimag Research Center 記念 オリジナル 2006年12月9日から インターネットアーカイブ )) 情報: アーカイブリンクは自動的に使用されており、まだチェックされていません。指示に従ってオリジナルとアーカイブのリンクを確認してから、このメモを削除してください。 @初め @2 テンプレート:webachiv/iabot/www-verimag.imag.fr – フランス(2005年11月)
  2. a b c N. Halbwachs、P。Caspi、P。Raymond、D。Fistaw: 同期データフロープログラミング言語光沢。 の: ジャーナル:IEEE第79巻の議事録。
  3. P. Caspi、D。Filad、N。Halbwachs、J。A。Plaice: 光沢:プログラミング同期システムの宣言言語。 1986年10月15日。
  4. a b P. Caspi、D。Filad、N。Halbwachs、J。A。Plaice: 光沢:プログラミング同期システムの宣言言語。 1986年10月15日
  5. 同期。 Verimag Research Center(フランス)、11/2005

after-content-x4