Program Composition Notation
可変変数 m の内容がリスト x の要素であれば true(1) を、そうでなければ false(0) を返すプログラムの例を以下に示す。
二分木(バイナリツリー)t の高さ z を求めるプログラムの例を以下に示す。ツリーの要素は {left, val, right} か空のタプルで表現されているものとする。各枝の深さは並行して計算され、定義変数 l と r によりheightの実行とzの計算との同期が行われる。
値が変更可能な可変変数(Mutable Variable)と値が一度決まったらその後は変更できない定義変数(Definition Variable)の2種類の変数
それぞれ従来の手続型言語の変数と並行論理プログラミングでの論理変数とに相当する。定義変数は並行プロセス間の通信や同期に使われる。可変変数(Mutable Variable)は変数宣言が必要で、宣言されていないものは定義変数として扱われる。
逐次実行ブロック、並行実行ブロック、選択(choice)ブロックの3種類のブロック
それぞれ{; .., ... }、{|| .., ... }、{? ..-> .., ..-> .., ... }の形式で表現される。選択(choice)ブロックはエドガー・ダイクストラのガード付きコマンドと同様、ガードの条件を満たした文のみが実行される。