Esterel 

Gérard Berry  INRIA 1980Esterel CVHDLVerilog

 Esterel Studio  Esterel Technologies  IEEE Esterel v7 Reference Manual Version v7 30  initial IEEE standardization proposal 

時間の多形記法

編集

Esterel での時間に記法は、非同期言語のそれとは異なる。具体的な時間は順序記述に置き換えられる。そのとき、事象の有無と同時性のみが考慮される。つまり、具体的な時間は特別な役割を持たないことを意味する。これを時間の多形記法(multiform notion of time)と呼ぶ。Esterel は、論理実体を完全に順序付けて並べて記述する。各実体では(0個を含む)任意個数の事象が発生する。同じ論理実体で発生した事象は同時に発生したと見なされる。それ以外の事象は発生した実体によって順序が決定される。文には、時間を消費しない文(実行と完了が同じ実体にあるもの)と、ある一定サイクル数の遅延がある文がある。

シグナル

編集

11 emit 

シグナル一貫性規則

編集
  • 各シグナルは、1つのサイクルでは存在するかしないかのどちらかであり、両方ということはない。
  • ライターはリーダーが動作する前に動作する。

従って

present A else
    emit A
end

は間違ったプログラムである(シグナル A が存在しない場合、それをブロードキャストする)。

言語構文

編集

基本的な Estrel の文

編集

(一)emit S --  S emit 

(二)pause -- pause 

(三)present S then stmt1 else stmt2 end --  S stmt1  stmt2 

(四)await S -- Sawait  S1 await immediately 

(五)loop p end -- p pause  await 

(六)p||q -- p q

例 (ABRO)

編集

次のプログラムは、A と B を受信すると同時に O を出力する。R を受信すると振る舞いがリセットされる。

module ABRO:
input A, B, R;
output O;

loop
  [ await A || await B ];
  emit O
each R

end module

利点

編集
  • 時間モデルにより、プログラマは正確な制御が可能
  • 並行性により、制御システムを記述しやすい
  • 完全に決定的な動作
  • 有限状態言語
  • ソフトウェアとしてもハードウェアとしても実装可能

欠点

編集
  • 有限状態性により、言語としての柔軟性が低い(ただし、適用分野における表現能力としては問題ない)
  • 意味論的問題
    • 因果律違反を防ぐのが難しい
    • 一般にコンパイルが困難だが、単純な正当性検証手法が存在する

外部リンク

編集