辞書へ戻る言語の一覧

Prolog

ぷろろぐ言語1972

論理を記述すると処理系が答えを導く、論理型プログラミング言語。手順を書くのでなく事実と規則を書く独特の発想で、人工知能研究や日本の第五世代コンピュータ計画でも注目された。命令型に慣れた頭には新鮮な異世界。

時代背景

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・推論

関連項目

  • Lispジョン・マッカーシーが考案した、リストを中心に据えた関数型寄りの言語。プログラムとデータを同じ形で扱える独特の設計を持ち、人工知能研究やプログラミング言語論に大きな影響を与えた。多くの方言を生みながら今も生き続けている。
  • Erlang電話交換機の開発から生まれた言語。並行処理と高い耐障害性に強く、大規模なメッセージ処理システムで使われる。

関連技術

出典