はじめに
Prologのカレンダーを見つけてうれしくなった私です。でも、まだ記事の投稿がありませんね。学術的にも実務的にもまったく用をなさない記事かもしれませんが、ちょいとしゃしゃり出てみることとしました。しばらくお付き合いくださいませ。
ノスタルジー
1980年代、ライフボート社からRUN/PROLOGというPrologインタプリタが販売されていました。言語処理系を購入しようとするとうん十万円は普通にした時代になんと2万円というお手頃値段で販売されていました。利用した方も多かったのではないかと思います。同時期にProlog-KABAという優秀な処理系も存在したのですが、こちらは8万円くらいしたように覚えています。私はRUN/PRologのお世話になりました。マニュアルももう色あせてバラバラになっています。
N-Prologとは
RUN/PROLOG互換のPrologインタプリタ・コンパイラです。性能はSWI-Prologには遠く及びませんが、取り扱いをできるだけ簡単にし、RUN/PROLOGの雰囲気に近づけるようにしています。当初、ISO-Prolog互換を目指していたのですが、ISO-Prolog規格のできの悪さにうんざりして離脱、懐かしのRUN/PROLOG互換にしたものです。SWI-PrologはISO-Prolog互換ではありませんが、これには作者のJanさんの深い思いが込められているものと私は思っています。
利用可能なOS
ほぼすべてのLinuxで動作します。また協力者の方によりMacOSでも動作するようになりました。OSより npl と入力すると起動します。対話モードがスタートします。assert述語を使って手入力することもできますが、かったるいのでエディタを起動しましょう。Linux標準のnanoを起動するようにしてあります。
RUN/PROLOGではPC-9801上のMS-DOSで起動しました。エディタは簡易なスクリーンエディタが付属していたように覚えています。
漢字もOK
RUN/PROLOGはシフトJISによる漢字も使えました。N-Prologもunicode対応にしてあります。あの動物データベースもオリジナルと同様に処理することができます。
コンパイラ内蔵
RUN/PROLOGはインタプリタのみでした。N-Prologはコンパイラもついています。といってもC言語に変換、動的リンクをするタイプでありそれほど高速化はできません。一応、一部最適化を入れてありnqueensなんかはSWI並みに高速に動作します。
PC-9801で8queenを動作させると最初の解が表示されるまでに数秒、十数秒かかっていました。今では全解探索を一瞬にやってのけます。コンピューターは進歩したものです。
DCGも内蔵
DCGも起動時に動作するようにしてあります。DCG構文を使って遊ぶこともできます。
古本
Prologブームの頃に多数の本が出版されました。今でも古本屋さんに行くと容易に入手可能と思います。こんな本があります。
どうぞ懐かしんでください
その昔、卒論はPrologのことでした、という方も多いことでしょう。計算機科学を教える大学ではLispあるいはPrologが必須だそうです。どうぞRUN/PROLOGを思い出してお楽しみください。N-PrologはOSSとして下記において公開しています。