Prolog (プロログ:Programming in Logic) はプログラミング言語です。C言語や Perl が手続き型言語、Lisp が関数型言語と呼ばれているのに対し、Prolog は論理型言語と呼ばれています。これは、Prolog の計算の仕組みが、論理学を基礎にして成り立っているからです。
論理学というと難しいのではないかと思われるかもしれません。ですが、論理学はさっぱりわからない M.Hiroi でも、Prolog でプログラムを作ることができました。また、Lisp で Prolog インタプリタを作ったこともあります。論理学だからといって、難しく考えることはまったくありません。
Prolog は、物事の間に成り立つ関係を定義していくことでプログラミングしていきます。そして、もっとも基本的な関係を表したものを「事実 (fact) 」といいます。Prolog のプログラムは、この事実関係を問い合わせることで動作します。すなわち、Prolog は「定義された事実を参照して質問の答えを導き出す言語」といってもいいでしょう。
たとえば、「太郎はコーヒーが好きである。」という事実があると、
だれがコーヒーを好きか? => 太郎 太郎はなにが好きか? => コーヒー
といった質問に答えることができます。
Prolog は、このような日本語でプログラミングすることはできませんが、手続き型言語のように、コンピュータに処理させる内容を順番に書いていく方法とは違い、事実を定義していくことでプログラミングすることができます。
ほかのプログラミング言語を知っている人にとって、なんでこれでプログラムが組めるのか不思議に思われることでしょう。C言語や Perl などのことはきれいさっぱり忘れて、実際に使ってみてください。Prolog の面白さが実感できると思います。
『お気楽 Prolog プログラミング入門』の著作権は筆者「広井誠 (Makoto Hiroi) 」が保持します。無断使用や無断転載は禁止いたします。『お気楽 Prolog プログラミング入門』で作成したプログラムはフリーソフトウェアとします。ご自由にお使いください。プログラムの改造や配布もご自由にどうぞ。その際は、出典を明記してくださるようお願いいたします。
ただし、これらのプログラムは無保証であり、使用したことにより生じた損害について、作者「広井誠 (Makoto Hiroi) 」は一切の責任を負いません。また、これらのプログラムを販売することで利益を得るといった商行為は禁止いたします。
Prolog Programming では SWI-Prolog という処理系を使用します。SWI-Prolog は GNU GPL ライセンスで配布されていて、SWI-Prolog's Home からダウンロードできます。Windows 用のバイナリが用意されているので、ダウンロードしてダブルクリックすれば、インストーラーが起動して簡単にセットアップすることができます。
Prolog の場合、ソースファイルの拡張子に .PL を使うのが伝統ですが、今では Perl の方が有名になりました。インストーラで拡張子を設定する項目がありますが、説明を読むと .PL と .PRO では不都合があるようなので、おススメされていた .SWI としました。これで SWI ファイルをダブルクリックすると、SWI-Prolog を起動してプログラムが実行されます。なお、SWI-Prolog では Windows の実行形式ファイル (.exe) を作成することはできません。ご注意ください。
Prolog を終了する場合は halt. を入力します。
?- halt.
?- はプロンプトです。この状態で halt. を入力すると終了します。最後のピリオド ( . ) を忘れてはいけません。ご注意くださいませ。