魔術師をめざして

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

その後の Prolog

その後といっても、まだ 3日ほどしか経っていない。

その 3日ほどで Prolog 処理系をいろいろ調べてみたが、Windows + 日本語入出力を満たしてくれる PrologScheme のようには揃っていない。どういうわけか Unicode への対応も遅れているようだ。まともに日本語が使えそうなのは、SWI-Prolog、Visual Prolog、AZ-Prolog、WIN-Prolog、K-Prolog くらいだろうか、数が少ないのだ。

【 AZ-Prolog - http://www.az-prolog.com/

f:id:fxrobot:20140108214431j:plain

中でも完全に無償なものは SWI-Prolog だけだ。Visual Prolog と AZ-Prolog は個人使用は無償だが、商用は有償。WIN-Prolog と K-Prolog は値段すらわからない。

結論としては、日本人にとっては SWI-Prolog 以外の選択肢はないように思える。ただし、SWI-Prolog のドキュメントはほぼ英語しかない。しかし、そのドキュメントはしっかりしたものなので英語がなんとかなるのなら、その面でも SWI-Prolog はベストだと思う。

しかし、英語は勘弁してくれという人には、AZ-Prolog はどうだろう。日本語のドキュメントが揃っているし、個人使用は無償だ。商用に移行したい場合、その値段は 8万円だ。その他、ランタイムライセンスが有料とのこと。

f:id:fxrobot:20140108214611j:plain

上は、AZ-Prolog を動かした図だ。AZ-Prolog には 64bit版と 32bit版があるが、64bit Windows で 32bit版を使うことはできない。インストーラーで分岐させている。

上で見たとおり、日本語の問題はない。Prolog を学びたいが適当な処理系がわからないという人には、まずは AZ-Prolog がよいかもしれないと思う。お勧めしてもよさそうだ。

f:id:fxrobot:20140108222236j:plain

 

 ところで、昨年も終わりに近づいてから、wxBasic に出会った。wxBasic には、まだまだ取り組みたいことが残っている。

しかし、その後、古い付き合いの APL を思い出そうと NARS2000 を使いながら復習することができた。それによってずいぶん思い出すことができた。ある程度、使えるという自信もできた。

そして、その後 AutoHotKey に出会い、これはほぼ自由に使える程度に習得できたと思う。多分、今年も使い続けることだろう。

これらを、左の図のような、まじんスタックに積んで、最後のスタックとして Scheme に取り組み始めたつもりだった。

しかし、ぼくったら、その上に Prolog のスタックを積んでしまったのだ。まぁ、積んでしまったのだから、それなりに納得できるまで取り組みたいと思う。

f:id:fxrobot:20140108222655j:plain

それで、何か Prolog の本を読もうと思った。Prolog の本は 10冊近くあったと思うが、いつもと同じ理由で今では手元に 1冊もないのだ。それで、読んだことがなく、易しいだろうと思える古書を注文した。

それが「Prolog-KABA 入門だ」。2日ほどでダラダラしながら半分くらい読んだが、わかりやすいことこの上ない。正解だったと思う。

ただ、著者が 3人いるため、途中で雰囲気が変わる印象があり、やはり 1人で責任を持って書いてもらったほうがよいのかもしれない。

 でも、まぁ、役に立っているので文句はないよ。

 Prolog 本を 2~3冊読んだら、AZ-Prolog のドキュメントをすべて読もうと思っている。その後は、SWI-Prolog の英語ドキュメントをすべて読むつもりだ。

 実は、昨夜、SWI-Prolog の PDFドキュメントを 2時間ほど集中して読んだが、いやー、雑多な内容が多いこと多いこと、直ぐに覚えられそうでもあるし、面倒そうでもある。次に SWI-Prolog の PDF を読むのは、上に書いたカリキュラムをこなした後ということになるだろう。

 一通り Prolog に取り組んだら、Prolog スタックの直ぐ下にある Scheme に戻るだろう。更にその後は、FX へと戻っていく予定だ。

さてさて、今日は最後にもう一つ Prolog 処理系を紹介しよう。

【 tuProlog - http://alice.unibo.it/xwiki/bin/view/Tuprolog/

f:id:fxrobot:20140108214741j:plain

tuProlog だ。tuProlog には、.NET 版と Java 版があり、どちらもバイナリが提供されている。ソースも LGPL で提供されている。

.NET の最新版はアーカイブに問題があるので一つ前のバージョンを使ってみた。Java の最新版は問題なく動いた。上の IDE は Java(Jar で提供)版を動かしたときの画像だ。.NET 版も見た目はまったく同じ。

残念なことに、.NET 版も Java 版も日本語は扱えない。

.NET 版はまったくダメだが、Java 版はシェル部分では可能で、エディタ部分では不可という状態だ。ソースから日本語版を構築しようかとも一瞬考えたが、入門書を読んでいるぼくが取り組むことではないだろう。

f:id:fxrobot:20140108230755j:plain

この後もちょっとの間、Prolog に取り組むだろうけど、今思うぼくにとっては、Scheme こそがプログラミング言語で、Prolog、APL、AutoHotKey の 3つは大変重要なツールという意識なのだ。もし、SchemeProlog の立場が逆転するようなことがあったらおもしろいね。