このページは 論理式や節(クラウズ)をプログラムとして扱う ロジックプログラミングの歴史的背景を、できるだけやさしい言葉でまとめたノートです。ルールベースモデル全体の史 より範囲を狭くし、言語・パラダイム・実装の系譜に焦点を当てています。
思想的ルーツ(論理を計算にする)
20 世紀の論理学・自動証明の蓄積のうち、**「述語論理の証明探索を、そのまま計算過程として解釈する」**という発想が、ロジックプログラミングの背骨です。Robert Kowalski らによる **「Resolution 原理を計算の核にする」**整理(1970 年代)が、Prolog 的な言語設計の理論的支柱として広く紹介されます。
Prolog の誕生と 1970〜1980 年代
Prolog は 1970 年代初頭、Alain Colmerauer と Philippe Roussel(マルセイユ)らの手で形作られた、という説明が一般的です。フランス語 programmation en logique に由来する名前は、そのまま「論理によるプログラミング」を示しています。
当初は自然言語処理の文法記述などにも使われ、ヨーロッパを中心に研究コミュニティが広がりました。Edinburgh Prolog など実装が整理されるにつれ、大学の AI 教育や 知識処理のプロトタイプに定着していきます。
日本の第五世代コンピュータ計画(ざっくり)
1980 年代、日本の 第五世代コンピュータ 構想では、並列推論や論理型言語(KL1 と Guarded Horn Clauses など)が前面に出ました。世間のイメージでは「Prolog=日本の国策」と混同されがちですが、学問的にはマルセイユ・エジンバラ等の先行研究が土台であり、国策はその上に載った大規模投資だった、と理解するのが安全です。
1990 年代以降:多様化とニッチ化
汎用アプリケーションの主流は手続き型・オブジェクト指向へ移り、Prolog は 専門領域(制約・スケジューリング・検証・DSL) での利用が目立ちます。Datalog(データベースと論理の接点)、制約論理プログラミング(CLP)、Mercury のような型付き系など、宣言的・制約中心の派生が続きました。
Python 向けの PyKE のような、ホスト言語と統合した推論も、同じ系譜の応用例として位置づけられます。
いまの位置づけ
「すべてを Prolog で書く」時代ではありませんが、規則の宣言的記述、問い合わせ可能な知識、形式検証などでは、論理プログラミングの発想が根強く残っています。