#12 Article 2088 Posted at 1988/04/17 16:26:51 by MARUTATSU (MAP132) []

Subject: Re: Re: ワ―プロProlog /2082 /2081

本物の専門分野の振りがきました。これはちゃんと答えないと、あたふた。

 このワープロ用Prologについては、「日経バイト」で読んだおぼえがあります。
大した情報も載っていなかったのですが、「使えるのだろうか」と思ったのが正直
なところです。それは後回しにして、まずはジキルさんのレポートについて。

*DEC10-Prolog準拠について

 Prologは、他の言語に比べて”準拠”という言葉がまともに使われています。と
 はいえ「ひどい目」に合わない保証はどこにもないですけど。普通、Prologとい
 われて載せられているプログラムは大抵DEC10-Prologです。

  append([],L,L).
    append([X|L],Y,[X|Z]):-append(L,Y,Z).

 なんていうのを御覧になったことがあるでしょう。DEC10-Prolog準拠の最低線は
 このように’:-’が出てくることですが、より厳密に”準拠”を捉えるなら、
 日本コンピュータ協会の「Prologプログラミング」という本に載っているものが
 全て動く、ということになるでしょうか。この本はDEC10-Prologの言語マニュア
 ルですが、6000円もします。入門に読むには、あまり向きません。

*Rupoの文書ファイルなど

  プログラムの作成もRupo上でやるのでしたら、扱えなければ困りますよね。
 それとも処理系内にエディタがあって、それでしかプログラムが作れないんでしょ
 うか。その辺の環境も気になるところです。また、日本語の文をそのままの形で
 扱うには入出力が拡張されていなければなりません。

*文字列操作関係の組み込み命令

  他の言語で「組み込み関数」とよばれるものを、Prologでは「組み込み述語」
 と呼びます。文字操作としてはまず、日本語を入出力するための述語が増えてい
 るでしょう。具体的には漢字コードの入出力・変換を行なう述語とか、日本語の
 文を読み込み、書き出しをする述語とか。Prologでは文字列をアスキーコードの
 リストとして扱います。ここで言う「リスト」は、lispの意味でのリストで
 す。ま、結局のところ1文字ごとに扱うことになりますから、何でもできる代わ
 りに、とても面倒です。文字列の置換や切り出しなどができる述語もあると便利
 でしょうね。


実物を見たことがないので、コメントはとりあえずこんなものでしょうか。ところ
でRupoには、どの程度のメモリーが実装されているんでしょう。Prologはメモリー
を大量に消費する言語ですから、メモリーが少ないと使い物になりません。これは
lisp同様にセルとしてメモリーを食い潰していくからの他、バックトラックの
ために多くの情報をスタックにつみ上げてゆくからです。セルをディスクにスワッ
プすることのできる処理系にはRUN-Prologなどがありますが、スタックをスワップ
できる処理系はまだ聞いたことがありません。このあたりの実行環境の問題はどの
ような解決がなされているのでしょう。悲観的になってきましたが、フル実装の8
bitマシン程度なら、十分おもちゃとしては動くはずです。

 えらく長くなっちゃいました。なにか質問がありましたら、お気軽にどうぞ。

                    MAP132 MARUTATSU