prefix(接頭辞)

簡単な例

これから幾つかの代数演算子を簡単な例を用いて解説していく。CSPは主に並行システムを記述するものであるが、まずは身近な例であるジュースの自動販売機と購入者の相互作用を例にモデル記述していくことにする。

自販機と購入者の動作(イベント)については以下のものを考える。

  • お金を入れる(coin)
  • ジュースを出す(juice)
prefix(接頭辞)

prefix '->' は (event) -> (PROCESS) のように使われ、event の後に PROCESS が実行される。(event)->(PROCESS) 自体もまたプロセスとなる。

コインを入れるとジュースが出る自動販売VM(VendingMachine)の例*1

 -- FDR2ではキーワード 'channel' を使ってイベントを定義する。
 channel coin, juice          -- coin, juice をイベントとして定義
 VM = coin -> juice -> SKIP   -- SKIPは正常終了を表すプロセス

プロセスVMは一回の販売で終了となる自動販売機である。

VMは coin のイベントが起きた後 (juice -> SKIP) というプロセスに移る。このプロセスはイベント juice の後、SKIP(正常終了)となる。

2回販売して終了する自動販売機VM2は

VM2 = coin -> juice -> coin -> juice -> SKIP

*1:CSPマシンリーダブルで表記する。また、FDR2では'--' ではじまる行と、'{-' と '-}' の間はコメント扱いとなり無視される。