sitelogo
コンパイルされた述語の使用
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.

コンパイルされたIF/Prologファイルは、たとえばコンパイルされたCや FORTRANファイルの場合とは同様、そのままでは実行できません。その代わりに、コンパイルしたファイルをロードし、その中で定義されたコンパイル済手続きを、コンパイルされていないIF/Prologの手続きを呼び出すのと同じ方法で、IF/Prologインタプリタレベルから起動できます。

Prologファイルがすでにコンパイルされている場合、以下のいずれの方法でもこれをロ−ドすることができます。

-コマンド行から、コマンド'ifprolog'とシステムパラメータ'-l'を使って以下のように します。

$ ifprolog -l myfile.sem (ifprologを参照して下さい)

-IF/Prologのセッション中に、述語loadを使って以下のようにします。

?-load(myfile).

2番目の例ではファイルには拡張子がありません。この場合IF/Prologは、'myfile'という名前のファイルを捜し、あればそれをロードします。そうでなければファイル'myfile.cmp'をロ−ドしようとします。これが失敗した場合には、ファイル'myfile.sem'をロ−ドしようとします。これらのファイルがいずれも存在しなければ、エラーメッセージが生成されます。

'unload(ファイル名)'を使って、現在のIF/Prologのデータベースからコンパイルされたモジュールを削除することができます。unloadした後、モジュール'ファイル名.sem'は、わからなくなります。述語abolishを使って、データベースから個々の述語を削除することも可能です。さらに、ファイルが最適化を書けずにコンパイルされた場合(ifsem -debugを使用して)、個々の節は削除され、インタプリトされたコードとして付け加えられることができます。

注意:

・コンパイルされたファイルは、'consult(ファイル名)'や'[ファイル名]'を使ってコンサルトできません!

・インタプリトされた手続きは、対応するコンパイルされた述語をロ−ドすれば、置き換わります。

・修正されたコンパイル済手続きは、変更することはできません。assertやretractを使用してこれを変更することはできません。

・最適化しコンパイルされた手続きの実行は、フルスクリ−ンデバッガやtrace/0を使ってデバッグすることはできません。


戻る 続く..
冒頭へ managed with ubiCMS