#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