魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

:- Yet Another Prolog

 まさに Yet Another Prolog なのである。

ぼくは意地になったのだろうか。SWI-Prolog 以外の使える Prolog を探して彷徨ったのだ。どこを? まぁ、パソコン周りで彷徨い続けたのだ。そして見つけ出したのが、YAP なのだ! もちろん、YAP の存在は SWI-Prolog とほぼ同時に知っていた。

【 YAP - http://www.dcc.fc.up.pt/~vsc/Yap/
f:id:fxrobot:20140111071706j:plain

 

Unicode サポートに期待してインストールしたのだが、write('ああああああああ'). などと入力したとたんに落ちてしまうのだった。ああああああああ、そんなぁ、ご無体な。

Unicode サポートといっても CP932 の野獣世界では落ちてしまうのも止むなしなのか、とあきらめの境地だったぼくなのだ。

 これは YAP の安定版(6.2.2)を選択した結果だったのだが、開発版(6.3.3)を使ってみたら、事態が好転したのだった。

 その結果が、下の画像のとおり。安定版ではコマンドシェル版しかなかったのだが、開発版にはウインドウ版が入っていたのだ。しかし実は、この開発版でも選択するフォントによっては不安定となる。この辺りのことは、更に版が進むことで改善されるであろう。

f:id:fxrobot:20140111072458j:plain

上の通り、とりあえず、ここまでは通った。

しかし、[user]. で直接、日本語アトムのプログラムを入れると、エラーとなってしまう。落ちたりダンマリではなくエラーメッセージが出る。また、UTF-8 で書いたプログラムを読み込んだときも同様の問題が起こる。

ただし、この辺りはぼくの認識不足の問題があるのかもしれない。YAP のドキュメントはまったく読んでいないから。でも、おそらくはそういう仕様なのだろう。だけど、YAP は SWI-Prolog との互換性を強く意識した Prolog のはずなんだけどね。SWI-Prolog では全てうまく行っているわけだからね。

それでも、まぁ、一歩前進というところだ。

さて、ぼくはここに至るまでに、数多くの Prolog 処理系をインストールして試したのだ。 Windows 7レジストリを汚すのが不満だが、実際にインストールして自分の目で確かめるほかないからね。その際、下の表を参考にしたので、皆さんにも紹介しよう。

http://en.wikipedia.org/wiki/Comparison_of_Prolog_implementations

f:id:fxrobot:20140111074710j:plain

クリックして拡大するとよくわかるが、Unicode に対応している処理系は少なくない。最大限踏みこんでいるのが、SWI-Prolog というわけだ。この表にあるものは、ほとんど試したが、なんらかの不満が必ず出てきた。また、ソフトウェアの品質も概ね低いように感じる。

この表で、LPA-PROLOG とあるのは WIN-PROLOG として前に紹介したものと同じもの。開発会社に評価版を申し込むと 28日間の評価使用が可能だ。しかし、値段はどこにも書いていない。多分、高価なのであろう。

参考までに、なぜぼくが SWI-Prolog だけで満足しないのかといえば、確かに SWI-Prolog は現在存在する処理系のなかで、少なくともぼくにとってはもっとも優れていると思うけど、やはり、不満もあるのだ。コンパイラもほしいし、GUI も可能であってほしい。

Visual Prolog に期待していたが、ちょっと期待に応えてくれるものではなさそうなのだ。少なくともぼくのね。ある程度 Prolog の経験を積んだら WIN-PROLOG の評価版を申し込んでみたいと思っている。しかし、実際に使ってみたら Visual Prolog 同様にガッカリということもありえるね。

① SWI-Prolog
② YAP
③ P#
④ AZ-Prolog

Scheme のようには行かないが、今のところ、上のリストが、ぼくの Prolog リストだ。P# は更新の期待薄だし、AZ-Prolog はランタイムごとのロイヤリティが必要なので、ぼく的には番外というか補助的な存在だ。だから、基本的には SWI-Prolog と YAP を追いかけていくことになるだろう。

今後は Prolog の基本をよく学び、それから ①②を中心に、そして ③④ を補助的に使いこんでいきたいと思う。

f:id:fxrobot:20140112031228j:plain

ぼくの App フォルダに YAP が加わった。

左から、Racket Scheme、HnadyScheme、Schluessel、SWI-Prolog、YAP、AutoHotKey、wxBasic、となっている。