Prolog
論理を記述すると処理系が答えを導く、論理型プログラミング言語。手順を書くのでなく事実と規則を書く独特の発想で、人工知能研究や日本の第五世代コンピュータ計画でも注目された。命令型に慣れた頭には新鮮な異世界。
時代背景
Colmerauer本人とRoussel本人の回顧録によれば、Prologは1970年夏、モントリオール大学で自動翻訳プロジェクトTAUMを率いていたAlain Colmerauerのもとに、Philippe RousselとRobert Paseroが招かれたことに端を発する。目的はプログラミング言語を作ることではなく、フランス語という自然言語を計算機で処理することだった。1971年、全員がマルセイユに戻り、自動定理証明とフランス語解析を組み合わせる研究を開始。1971年6月には自動定理証明の専門家Robert Kowalskiを招き、線形導出(SL-resolution)の考え方を学んだ。1972年、フランス語での人間・機械対話システムの開発と並行してPrologの予備版がPhilippe RousselによってAlgol-Wで実装された。
名前の由来
回顧録は「よく知られている通り、『Prolog』という名前は1972年にマルセイユで考案された」と述べている。名付けたのはPhilippe Roussel本人で、フランス語の自然言語による人間・機械対話システムを実装するためのソフトウェアツールを指すために、「PROgrammation en LOGique(論理におけるプログラミング)」の略語として選んだという。回顧録の別の箇所では、この名前は「Philippeの妻からの提案に基づき、与えられたキーワードをもとに決まった」とも述べられており、命名の経緯には複数の説明が併記されている。
仕組み
Colmerauer・Roussel本人の回顧録によれば、1973年に開発された「最終版」のPrologでは、Horn節を土台にした線形導出を採用し、バックトラッキングによる非決定性の処理、単一化を節の先頭同士でのみ行う方式が採られた。回顧録は「知らぬ間に、Horn節のみを扱う場合に完全となる戦略を発見していた」と振り返っており、この非論理的な制約(当時の理論モデルからすれば異端)を導入したことが、後にRobert Kowalskiによって『Horn節』という概念として理論的に正当化されたと説明している。1973年6月から年末にかけて、Gérard Battani・Henry Meloni・René BazzoliらがFortranでインタプリタ本体を、Prolog自身でスーパーバイザを実装した。
| 分類 | 論理型言語 |
|---|---|
| 用途 | AI・推論 |