論理型言語というのは「問題を述語論理で記述すればそのままプログラムとし て動く」という宣伝がよくなされていた. この影響か, 論理型言語は人工知 能研究向きの特殊なプログラム言語で, 一般のプログラミングとは無縁である という誤解が, まだ一部に根強くあるようだ. そうした偏見に染まることな く KL1 の並列プログラム言語としての言語仕様を理解していただきたかった ので, ここまでの説明では KL1 と一階述語論理との関係についてあえて触れ ずに来た. ここまでの説明を理解していただければ, KL1 はそれほど風変わ りな言語ではないということも, 理解していただけたのではないだろうか.
実際, KL1 は (Prolog とは違って)「問題を述語論理で記述すればそのままプ ログラムとして動く」といったことは最初から考えていない. 並列処理の記 述に必要な仕様を素直に採り入れたら, いや, むしろ従来のプログラム言語に 意識的・無意識的に採用されてきた逐次処理特有の機能を排除したら, ごく自 然にこのような言語になるのである.
そうはいっても, KL1 の設計は論理型言語として出発し, その仕様の根幹には 論理型言語としての血が脈々と流れている. ここでは, 一階述語論理と KL1 の関係について, ごく簡単に触れておきたいと思う. なお, 以下の説明の大 部分は KL1 だけでなく, Prolog などの他の論理型言語にもあてはまるもので ある.