述語のコンパイル方法
MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008.

Prologでは述語はヘッドとボディから成ります。ボディはゴールの連言です。述語はこの連言が証明可能であれば真となります。Prologの述語は手続きとも呼ばれます。述語をコンパイルするということは、この述語を定義するサブゴールの定義もコンパイルされるということではありません。

IF/Prologコンパイラは'.pro'ファイルを入力とし、'.pro'ファイルで定義された述語のコンパイルされたコードを含む'.sem'ファイルを生成します。コンパイラは、以下のようにしてオペレーティング・システムレベルから起動することができます。

$ ifsem myfile

あるいは、Prologのセッション中には以下のようにして下さい。

?- compiles(myfile).

compiles/1によって、IF/Prologは新しいサブシェルを起動します。このサブシェルにおいて 'ifsem myfile'が実行されます。コンパイラは、ファイル'myfile.pro'を探し、このファイルに定義された述語のための中間コードを生成します。このコードはmyfile.semのようなファイルにセーブされます。

作業が完了し、サブシェルを終了してシステムが当初のPrologレベルに戻ると、コンパイルされたファイルがロードされます。コンパイラが成功した場合には、コンパイルに要した時間が以下のように表示されます。

?- compiles(myfile). file myfile.pro compiled in 0 secs.

ifsemに"-nonotify"のオプションを付けて、この表示をやめることができます。

デフォルトとして、ifsemとcompiles/1は最適化コードを生成します。もし、何らかの理由で最適化ができない場合は、ifsemが、-debugのオプションと共に起動されます。ifsemについての詳しい説明は、レファレンスマニュアルを見て下さい。


Up read on...