ACPは、普遍代数の意味での、根本的には代数である。この代数は、他のプロセスや特定の基本要素の合成を定義する代数的プロセス表現を用いてシステムを記述する方法である。
プリミティブ
ACP は瞬間的で原子的なアクションを使用します(
)をその基本要素として使用します。一部のアクションには特別な意味があります。例えば、アクション
これは行き詰まりや停滞を表し、アクション
これは、沈黙した動作(特定のアイデンティティを持たない抽象化された動作)を表します。
代数演算子
さまざまな演算子を使用して、アクションを組み合わせてプロセスを形成できます。これらの演算子は、大まかに言って、基本的なプロセス代数、並行処理、および通信を提供するものとして分類できます。
- 選択と順序付け– 代数演算子の中で最も基本的なものは、代替演算子 (
) アクションの選択肢とシーケンス演算子(
)は、アクションの順序を指定します。たとえば、プロセス

- まず、どちらかを実行することを選択します。
または
そして、アクションを実行する
選択方法
そして
作成方法は重要ではなく、指定されていません。交替合成は可換ですが、逐次合成は可換ではありません(時間が順方向に流れるため)。
- 並行処理– 並行処理を記述できるようにするために、ACP はマージ演算子と左マージ演算子を提供します。マージ演算子は、
は、個々の動作が交互に行われる 2 つのプロセスの並列合成を表します。左マージ演算子は、
は、マージと同様の意味を持つ補助演算子ですが、常に左側のプロセスから最初のステップを選択するという制約があります。例として、プロセス

- アクションを実行する
いずれのシーケンスにおいても
一方、そのプロセスは

- シーケンスのみ実行可能
左マージ演算子はアクションが
最初に発生する。
- 通信—プロセス間の相互作用(または通信)は、バイナリ通信演算子を使用して表されます。
例えば、アクション
そして
データ項目の読み書きと解釈される可能性がある
それぞれ。次にプロセス

- 価値を伝える
右コンポーネントプロセスから左コンポーネントプロセスへ(つまり識別子)
値に拘束されます
、および無料インスタンス
その過程で
その値を取り)、その後マージとして動作します
そして
。
- 抽象化—抽象化演算子、
これは、特定のアクションを「隠蔽」し、モデル化対象システム内部のイベントとして扱う方法です。抽象化されたアクションは、サイレントステップアクションに変換されます。
場合によっては、これらのサイレントステップは抽象化プロセスの一部としてプロセス表現から削除することもできます。たとえば、

- これは、この場合、以下のように簡略化できます。

- イベント以来
もはや観測不可能であり、観測可能な影響もありません。
ACPは、様々な演算子の形式的な定義において、基本的に公理的かつ代数的なアプローチを採用している。以下に示す公理は、ACPの完全な公理系を構成するものである。
(抽象化を伴うACP)
基本的なプロセス代数
代替および逐次合成演算子を使用して、ACP は公理[ 3 ]を満たす基本的なプロセス代数を定義します。

行き詰まり
基本的な代数に加えて、2 つの追加の公理が代替演算子とシーケンス演算子、およびデッドロックアクションの関係を定義します。

抽象化
抽象化演算子に関連する公理は[ 3 ]です。

上記のリストにあるアクションaは値 δ を取る可能性があることに注意してください (ただし、もちろん δ は抽象化セットIに属することはできません)。
ACPは、以下のような並行システムを記述および分析するために使用できる他のいくつかの形式体系の基礎または着想源となってきました。
参考文献
- ↑ JCM Baeten、プロセス代数の簡単な歴史、Rapport CSR 04-02、Vakgroep Informatica、アイントホーフェン工科大学、2004
- ↑ Bas Luttik、「プロセス理論における代数とは何か」、代数的プロセス計算:最初の25年間とそれ以降、Wayback Machineに2005年12月4日にアーカイブ済み、イタリア、ベルティノーロ、2005年8月1日
- 1 2 3 4 J.A. Bergstra および JW Klop、「ACP τ : プロセス仕様のための普遍的な公理システム」、CWI Quarterly 15、pp. 3-23、1987
- ↑ PJL Cuijpers および MA Reniers、「ハイブリッドプロセス代数」、技術報告書、アイントホーフェン工科大学数学・コンピュータ科学科、2003 年