M.Hiroi's Home Page

Prolog Programming

[ Home ]

WHAT'S NEW


CONTENTS


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

CONTENTS

●入門編

●中級編

●応用編

●Yet Another Prolog Problems


はじめに

Prolog (プロログ : PROgramming in LOGic) はプログラミング言語です。C言語や Java などが手続き型言語、Lisp / Scheme や Haskell などが関数型言語と呼ばれているのに対し、Prolog は論理型言語と呼ばれています。これは Prolog の計算の仕組みが論理学を基礎に成り立っているからです。論理学というと難しいのではないかと思われるかもしれません。ですが、論理学はさっぱりわからない M.Hiroi でも、Prolog でプログラムを作ることができました。難しく考えることはありません。

Prolog は、物事の間に成り立つ関係を定義していくことでプログラミングしていきます。そして、もっとも基本的な関係を表したものを「事実 (fact)」といいます。Prolog のプログラムは事実関係を問い合わせることで動作します。すなわち、Prolog は「定義された事実を参照して質問の答えを導き出す言語」といってもいいでしょう。

たとえば、「太郎はコーヒーが好きである」という事実があるとします。すると、次のような質問に答えることができます。

だれがコーヒーを好きか? => 太郎
太郎はなにが好きか? => コーヒー

Prolog は日本語でプログラミングすることはできませんが、手続き型言語のようにコンピュータに処理させる内容を順番に書いていく方法とは違い、事実を定義していくことでプログラミングすることができます。他のプログラミング言語を知っている人にとって、なんでこれでプログラムが組めるのか不思議に思われることでしょう。C言語や Java などのことはきれいさっぱり忘れて、実際に使ってみてください。Prolog の面白さが実感できると思います。

●SWI-Prolog

本ページ (Prolog Programming) では、SWI-Prolog という処理系を使って Prolog の学習を進めることにします。SWI-Prolog は下記 Web サイトからダウンロードすることができます。

Windows の場合、インストーラーが用意されているので、それをダウンロードしてダブルクリックすれば、SWI-Prolog を簡単にセットアップすることができます。

Unix 系 OS の場合、たとえば Ubuntu 22.04 LTS であれば次のコマンドでインストールすることができます。

sudo apt install swi-prolog

なお、本ページでは GUI を使用しないので、X Window System のサポートがないパッケージ (swi-prolog-nox) をインストールしてもかまいません。

シェル上でコマンド prolog または swipl を入力すると、SWI-Prolog が対話モードで起動されます。

$ swipl
Welcome to SWI-Prolog (threaded, 64 bits, version 8.4.2)
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.
Please run ?- license. for legal details.

For online help and background, visit https://www.swi-prolog.org
For built-in help, use ?- help(Topic). or ?- apropos(Word).

?- ^D
% halt
$

Prolog を終了する場合は CTRL-D または halt. を入力します。halt. で終了する場合、最後のピリオドを忘れないように注意してください。


初版 2000 年 10 月 23 日
改訂 2023 年 4 月 23 日

参考文献・URL

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

『お気楽 Prolog プログラミング入門』の著作権は筆者「広井誠 (Makoto Hiroi)」が保持します。無断使用や無断転載は禁止いたします。『お気楽 Prolog プログラミング入門』で作成したプログラムはフリーソフトウェアとします。ご自由にお使いください。プログラムの改造や配布もご自由にどうぞ。その際は、出典を明記してくださるようお願いいたします。

ただし、これらのプログラムは無保証であり、使用したことにより生じた損害について、作者「広井誠 (Makoto Hiroi)」は一切の責任を負いません。また、これらのプログラムを販売することで利益を得るといった商行為は禁止いたします。

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

[ Home ]