Guarded Horn Clauses
Guarded Horn Clauses (GHC) は並行プログラミングのためのプログラミング言語で、論理変数を介して通信を行う複数の軽量プロセスのネットワークとしてプログラムを記述する。「並行アルゴリズムを気持ちよく記述できる汎用プログラミング言語を論理プログラミングの枠組みを利用して開発すること」を目標として設計された。多くの並行プログラミング言語が逐次処理言語に並行実行の機能を追加したものなのに対して、GHCは並行実行が基本で、並行処理を素直に記述できる。言語の特徴を以下に示す。
逐次実行ではなく並行実行が基本。並行処理を素直に記述できる。
動的にプロセスを生成できる。
動的に通信チャネルを生成でき、他のプロセスに転送できる。
通信ネットワークの動的な再構成が可能である。
様々な形態のプロセス間通信を表現できる。
理論的な背景を持ち、明確な意味論を持つ。
GHCではホーン節にガードを導入した以下のような規則(Clause)の集まりでプログラムを記述する。"|"はコミット演算子と呼ばれる。G はガード部、B はボディ部と呼ばれる。Head、G、Bはそれぞれ原子論理式である。ガード部の条件がない場合、ガード部とコミット演算子は省略できる。
このガード付きホーン節は、エドガー・ダイクストラのガード付きコマンドと同様のものである。
■カテゴリ / ■テンプレート
Guarded Horn Clauses (GHC)は、1984年末に設計され1985年に発表された並行論理プログラミング言語である。第五世代コンピュータプロジェクトで並列マシンの核言語の検討をしていた上田和紀により設計された。核言語の候補だったConcurrent Prologを分析する過程で問題点を見付け、それを解決するさらに単純化した言語として設計した。
GHCのバリエーションであるFlat GHCを基に、近山 隆によりKL1 (Kernel Language One) が設計され、第五世代コンピュータプロジェクトでハードウェアと応用ソフトウェアとの間を繋ぐ核言語として、並列マシンのオペレーティングシステムやKL1を含む様々な言語処理系、各種応用プログラムの作成に利用された。