並行論理プログラミングは、並列コンピューティング向けに設計された論理プログラミングの一種であり、プログラムは次の形式のガード付きホーン節の集合である。
論理積G 1 , … , G nは節のガードと呼ばれ、 |はコミットメント演算子です。
宣言的に言えば、ガード付きホーン節は通常の論理的含意として解釈される。
しかし、手続き的には、与えられた目標に一致するヘッドHを持つ節が複数ある場合、すべての節が並列に実行され、それぞれのガードG 1、 … 、 G n が満たされているかどうかがチェックされます。複数の節のガードが満たされている場合、いずれかの節が選択され、選択された節のサブゴールB 1、 … 、 B nの実行が続行されます 。これらのサブゴールも並列に実行できます。したがって、並行論理プログラミングは、「知らない非決定性」ではなく、「気にしない非決定性」の一形態を実装しています。
最初の並行論理プログラミング言語は、キース・L・クラークとスティーブ・グレゴリーによる関係言語であり、これはIC-Prologから派生したものである。後の並行論理プログラミング言語には、エフド・シャピロのConcurrent Prologや上田のGuarded Horn Clause言語などがある。
並行論理プログラミングの開発は、日本の第5世代プロジェクト(FGCS)のシステムプログラミング言語であるKL1の実装にガードホーン節が使用されたことで加速した。FGCSプロジェクトは、人工知能アプリケーションに大規模並列コンピューティング/処理を利用するために、1982年に日本の通商産業省によって開始された4億ドルのイニシアチブであった。ハードウェアとアプリケーション間の「欠落したリンク」として並行論理プログラミングが選ばれたのは、1982年にFGCSプロジェクトを訪問したエフド・シャピロ(Concurrent Prologの発明者)の影響を受けた。