魔術師をめざして

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

Prolog 学習倶楽部(1)

Prolog をここ数日学習したことで感じたのは、Prolog とは易しい言語だということだ。Prolog を学ぶことは C++ などを学ぶことより数段易しいだろう。ぼくは今年になって Prolog を本気で学び始める以前においては、Prolog は難しいし、取っつきにくいものであるという先入観を持っていたのだ。f:id:fxrobot:20140124110150j:plain

Prolog は一時期の大流行によって、その入門書が数多く発刊された。しかし、今では完全に廃れた言語のごとくのイメージではないか。

残念なことに Prolog の入門書の多くは入門書として洗練されていない。市場における競争によっていかに易しく伝えるかという競争にさらされるというようなことはなく、それぞれが独立して一気に発刊され、一気にしぼんでいったのだろうという印象だが、どうだろうか。

Prolog を入門書で学んである程度使えるようになることは、本来そんなに難しいことではないはずだが、Prolog に限っては多くの障害があるように感じるのだ。

ところで、Prolog の入門書の前書きのほとんどに「Prolog は現在もっとも注目を集めている言語です」などということばが添えられている。これは、かつての第五世代コンピュータプロジェクトの盛り上がりに合わせて、多くの入門書が学者によってか書かれたからであろう。

経験を積んだ実務者や入門書の販売実績の優れた人気ライターによる入門書ではないのである。普及する前の入門書であり、また、Prolog のその生い立ちからしても学術的な内容になりがちなのも仕方がないことであったろう。

大衆的技術者向けの実践的な本があって、その奥に理論的な完成度の高い本が待っているのならよいのだろうが、あっちもこっちも学者による、それぞれの著者の恣意的なアイデアによる中途半端な理論風味の本で溢れたということではないのか。

高橋麻奈さんあたりが、Prolog 入門を書いたらどんなものになるのか。しかし、現在の Prolog にはそういう企画が成り立つほどの市場はないだろう。まぁ、そういうことなんだろうと思うよ。という具合に散々悪口を書いているぼくだけど、実は Prolog の入門書を楽しんでいるのだ。

ただし、それはぼくに限ってのことだろうと思うよ。Prolog の入門書がそんな状態で、更に状況が悪いのは、日本語のドキュメントが揃った無償あるいは安価な Prolog の処理系が皆無なのだ。かつての国内大衆向けの RUN (Arity) / PROLOGProlog-KABA が存在しない今、どうやってどの処理系を使って Prolog を覚えればよいのか。

 ぼくは、Prolog はインテリやアカデミックな人たちだけのものではなく、大衆的な技術者やぼくのような大衆的言語好きにも十分使えて役に立つものだと思うし、もっと使うべき言語ではないのかと、つまりそれに気づいたのだ。

 f:id:fxrobot:20140124193222j:plain

まじんはまだまだ Prolog 学習中。:P

【追伸】
ありがたいことにこの記事に対し建設的なコメントをいただけたので、追伸させていただくことにした。まずは以前の記事で書いたことを再掲載したい。以下のとおりだ。
----------
AZ-Prolog は個人使用は無料だ。マニュアルも日本語で入門的なことも書いている。そして、日本語も問題なく通るので日本語のアプリケーションを開発することも可能だ。ただし、開発したアプリケーションを配布するとなるとランタイムライセンスが有料なので気をつけなければならない。
-------------------------------------------------------------------------------------------------------------
① 日本語の通る無料の処理系
   1.  AZ-Prolog    http://www.az-prolog.com/
   2.  SWI-Prolog  http://www.swi-prolog.org/

② 初心者向けチュートリアル
   1.  AZ-Prolog マニュアル http://www.az-prolog.com/manual/
   2.  お気楽 Prolog プログラミング入門 http://www.geocities.jp/m_hiroi/prolog/
   3.  Prolog オンラインテキスト http://light21.s26.xrea.com/prologV2/contents.html
   4.  初級 Prolog 講座 http://tutorial.jp/prog/prolog/prolog.pdf
   5.  Prolog ウィキペディア http://ja.wikipedia.org/wiki/Prolog

③ 初心者向けおすすめ書籍(いまでも容易に手に入るもの)
   1.  Prolog プログラミング C.S.Mellish (著), 中村 克彦 (翻訳)
   2.  その他の入門書については今後調査してお知らせしたい
-------------------------------------------------------------------------------------------------------------
Prolog を習得するという目的のための、現時点の結論としては、C.S.Mellish の翻訳本を読み、AZ-Prolog マニュアルを読みながら、実際に AZ-Prolog を使って実戦するという方法が一番よいように思う。
----------

以上のように紹介していた。もう一度書くが、AZ-Prolog は「個人使用ライセンス」は無償だ。もし商用利用しようとすると、その使用に 8万円とその他「ランタイムロイヤリティ」が別途必要になる。

個人的には 8万円は構わないがランタイムロイヤリティが気にくわない。とはいっても仕事として取り組まれているのだから当然のことといえるだろう。ぼくの気分はどうでもいいことだよね。:P

まじめにいうならば、個人使用が無償というのは実にありがたいことで、AZ-Prolog によって日本語が扱える実際の処理系のもと、Prolog を学ぶことができる。AZ-Prolog については、もっと大きな声で推奨すべきだったかもしれないと思う。

また、上で書いた処理系について更新したい。

① 日本語の通る無料の処理系
   1.  AZ-Prolog    http://www.az-prolog.com/
   2.  SWI-Prolog  http://www.swi-prolog.org/
   3.  YAP             http://www.dcc.fc.up.pt/~vsc/Yap/
   4.  P#               http://homepages.inf.ed.ac.uk/stg/research/Psharp/
   5.  JIProlog       http://www.jiprolog.com/

ということだが、P# は Prolog Cafe をもとにした処理系だが Prolog Cafe をリストに載せていないのは大衆に対する配慮を感じないためだ。また、P# はながらく更新されていないという点に注意が必要。JIProlog も他の記事で取りあげたが、日本語という面で問題がないわけではない。

このリストにおいて AZ-Prolog を一番に挙げたのは、日本人が Prolog を学ぶという点において、一番相応しい処理系ではないかとの視点からだ。

ぼくにとっての一番は SWI-Prolog だ。まぁ、約束はできないけど、ぼくは SWI-Prolog を前提とした Prolog 入門をいつか書きたいという考えを持っている。もちろん、そんなの待っちゃいられないから今日から AZ-Prolog に取り組むことをお勧めしたい。

ああ、そう、あともう一つ。

③ 初心者向けおすすめ書籍(いまでも容易に手に入るもの)
   1.  Prolog プログラミング C.S.Mellish (著), 中村 克彦 (翻訳)
   2.  その他の入門書については今後調査してお知らせしたい

の部分だけど、アマゾンに 1,400円で出ていた「Prolog プログラミング C.S.Mellish (著), 中村 克彦 (翻訳)」が売れてしまったようだ。探したが他でも手に入らないようだ。2. で約束したということもあるので、Prolog の入門書として手に入る良書を紹介したいと思うがもう少し待ってほしい。

では、ごきげんよう。