How to build gprolog-1.2.6
gprolog-1.2.16をbuildする[2002.10.20]
Prolog(Programming in logic)は、Horn節(clause)のUnificationとResolusionに基づいた論理型プログランミング言語である。
制御には、cut(!),バックトラックが使用できる。
Prologは、学生時代に興味を持った言語の1つである。
休刊した雑誌bitに掲載されたBASICで記述されたPrologインタプリタ(文字列関数を使ってUnificationを実装していた)を動かしたこともあったが、当時の8bitパソコンのBASICインタプリタ上では実行速度は遅く、ほとんど実用にはならなかった。
ここでは、GNU Prolog 1.2.16をNetBSD-1.6/i386上でbuildする。
手順は以下の通りである。
- gprolog-1.2.16.tar.gzを展開する。
$ tar zxf ./install/gprolog-1.2.16.tar.gz
- INSTALLを良く読む。
$ cd gprolog-1.2.16
$ more INSTALL
- configureする。
$ cd src
$ ./configure --prefix=/usr/gnu --with-c-flgas="-m486 -O3" --enable-linedit
- Ma2Asm/ix86_any.cを編集する。
< #if (defined(M_ix86_cygwin) || defined(M_ix86_bsd)) && !defined(__FreeBSD__) && !defined(__NetBSD__)
---
> #if (defined(M_ix86_cygwin) || defined(M_ix86_bsd)) && !defined(__FreeBSD__)
- makeする。
$ make
- make installする。
$ su
# make install
# exit
- make cleanする。
$ make clean
リストを結合するプログラムappend/3(組み込み述語にあるので、名前をapにする)を作成し、実行してみると、以下のようになる。
bash-2.05a$ gprolog
GNU Prolog 1.2.16
By Daniel Diaz
Copyright (C) 1999-2002 Daniel Diaz
| ?- [user].
compiling user for byte code...
ap([],X,X).
ap([X|Y],Z,[X|U]):-ap(Y,Z,U).
% ここで、ctrl-Dを入力すると、プログラム入力を完了し、コンパイルする。
user compiled, 3 lines read - 448 bytes written, 44885 ms
(13 ms) yes
| ?- ap([a,b,c],[d,e],X).
X = [a,b,c,d,e]
yes
| ?- ap(X,Y,[a,b,c]).
X = []
Y = [a,b,c] ? ;
X = [a]
Y = [b,c] ? ;
X = [a,b]
Y = [c] ? ;
X = [a,b,c]
Y = [] ? ;
(21 ms) no
| ?- halt.
bash-2.05a$
現在の32bitパソコン上では、10数年間に渡るハードウェアおよびソフトウェアの進歩により、Prolog処理系も実用的になったのではないかと思う。
参考文献
- [1]J. A. Campbell(編), "implementations of PROLOG", Ellis Horwood Limited, 1984, ISBN0-85312-675-5.
- [2]W. F. Clocksin, C. S. Mellish, "Programming in Prolog Second Edition", Springer-Verlag, 1984, ISBN0-387-15011-0.
- [3]黒川 利明, "Prologのソフトウェア作法", 岩波書店, 1985, ISBN4-00-007681-7, {2700円}.
- [4]中島 秀之, "Prolog", 産業図書, 1983(2刷), {1800円}.
- [5]中島 秀之, "知識表現とProlog/KR", 産業図書, 1985, {2000円}.
- [6]W. F. Clocksin, C. S. Mellish(著), 中村 克彦(訳), "Prologプログラミング", マイクロソフトウェア, 1983, {6000円}.
- [7]Feliks Kluz\'niak, Stanis\law Szpakowics, "PROLOG FOR PROGRAMMERS", Academic Press, 1985, ISBN0-12-416520-6.
Last Update: 2005.06.12 |
H.Nakao |