M.Hiroi's Home Page
http://www.geocities.jp/m_hiroi/

Prolog Programming

[ Home ]

WHAT'S NEW


CONTENTS


お気楽 Prolog プログラミング入門

CONTENTS


はじめに

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) 」は一切の責任を負いません。また、これらのプログラムを販売することで利益を得るといった商行為は禁止いたします。

Copyright (C) 2000-2016 Makoto Hiroi
All rights reserved.

SWI-Prolog

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. を入力すると終了します。最後のピリオド ( . ) を忘れてはいけません。ご注意くださいませ。


参考文献・URL

  1. 中島秀之, 『 Prolog 』, 産業図書, 1983
  2. 瀬下孝之, 『 Prolog 入門』, オーム社, 1992
  3. Leon Sterling, Ehud Shapiro, 『 Prolog の技芸』, 共立出版, 1988
  4. 金田悠紀夫, 『 Prolog マシン』, 森北出版, 1992
  5. 松原 仁, 竹内郁雄 編, 『bit 別冊 ゲームプログラミング』, 共立出版, 1997
  6. 神戸大学 Prolog ホームページ (田村直之さん)

Yet Another Prolog Problems


Copyright (C) 2000-2016 Makoto Hiroi
All rights reserved.

[ Home ]