この章では、IF/Prologのコンパイラについて述べます。このコンパイラは機械にほとんど依存しなく効率的に実行ができる中間バイナリコードを生成します。...
移動
次へ 前へ
上へ 最上
詳細
述語のコンパイル方法
コンパイルされた述語の使用
コンパイルされる述語について
コンパイルのためのファイル準備
インタープリタされた述語とコンパイルされた述語の組合せ
エラーメッセージ
参考
IF/Prologとは...
Prologの概念、言語、アプリケーションの範囲
初めてのPrologのセッションのための準備
IF/Prologコンパイラの使用
モジュールの使用
デバッギング
レファレンス
イフコンピュータ > IF/Prolog > マニュアル > IF/Prolog V4.1 マニュアル > ユーザーズ・ガイド > IF/Prologコンパイラの使用

IF/Prologコンパイラの使用

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のコンパイラについて述べます。このコンパイラは機械にほとんど依存しなく効率的に実行ができる中間バイナリコードを生成します。

IF/Prologにおける「コンパイル」とは実際には2段階のプロセスを意味します。(厳密な意味での)コンパイルと最適化の2段階です。それぞれ、下に述べるように、インタプリトされるコードと比べて、利点も欠点もあります。プログラムは最適化をせずにコンパイルすることもできます。

プログラムをコンパイルすることの利点(最適化とは関わりなく)は、以下の通りです。

・IF/Prologのメモリスペースの中でより少ない領域しか使用しません。

・コンパイラはプログラムをモジュールとして扱うことができます。モジュールは階層的な名前づけのスキームを用い、大規模なプログラムを開発する時に大きな助けとなります。

・Prologのコードを人間は読めないので、あなたのアイデアがコピーされることがありません。(ただし、コンパイルと同時に最適化を行なわなかった場合には、コンパイルされたコードをlisting/1あるいはdebug/0を使って逆コンパイルすることができます。)

プログラムをコンパイルすることの欠点は、以下の通りです。

・コンパイルされたプログラムは、同様のアーキテクチャを持つ機械間でしか可搬性がありません。ここで、同様なアーキテクチャとは、メモリ境界、バイト順、浮動小数点のフォーマットが同じであることを指します。これらの条件が異なる計算機の場合、別個にコンパイルしたコードを必要とします。

プログラムを最適化コンパイルすることの利点は、以下の通りです。

・実行速度は、通常50%から100%高速になります。スピードアップの度合は、アプリケーションのコードの内容により、大きく変わります。演算の種類によっては、5倍も高速になるものがあります。

プログラムを最適化コンパイルすることの欠点は、以下の通りです。

・コンパイルされたコードは、もはやトレースやデバッグをすることができません。つまり、プログラムのコンパイルと最適化は、通常プログラムが完全にテストされデバッグされた後ですることになります。

・コンパイルされた述語は、もはや動的に変更することができません。これは、追加や削除は述語の単位でのみ可能で節の単位ではできないことを意味しています。

備考: 従来のIF/Prologのバージョンやその他のPrologシステムに比して、IF/Prolog4.0でのコードのインタプリトおよびコンパイルの実行速度は、非常に上がっています。これはインタプリタがコンパイルド・アサートという手法を使っているためです。インタプリト/コンパイルされたコードは、実質的には最適化されたコードと同一のレベルになっており、コンパイルの必要性は実際にはあまりありません。それゆえ、コンパイラを使用することの主な利点はモジュールの機能が利用できることです。

続く..
述語のコンパイル方法
Prologでは述語はヘッドとボディから成ります。ボディはゴールの連言です。述語はこの連言が証明可能であれば真となります。Prologの述語は手続きとも呼ばれます。述語をコンパイルするということは、この述語を定義するサブゴールの定義もコンパイルされるということではありません。...
コンパイルされた述語の使用
コンパイルされたIF/Prologファイルは、たとえばコンパイルされたCや FORTRANファイルの場合とは同様、そのままでは実行できません。その代わりに、コンパイルしたファイルをロードし、その中で定義されたコンパイル済手続きを、コンパイルされていないIF/Prologの手続きを呼び出すのと同じ方法で、IF/Prologインタプリタレベルから起動できます。...
コンパイルされる述語について
Prologの手続きをコンパイルすると、システムはその手続きのための最適化コードを生成します。(ただし、最適化が抑制されている場合はこれに該当しません。レファレンスマニュアルのifsemの章を参照して下さい。) たとえば選言';'、カット'!'、'asserta'、'retract'を含んでいたとしても、基本的にすべてのPrologの手続きがコンパイルできます。手続きはコンパイル後もそれ以前と全く同様に機能します。...
コンパイルのためのファイル準備
コンパイラはユ−ザが指定した(拡張子'.pro'のある)Prologのソースコードファイルを入力とし、拡張子'.sem'のあるファイルを出力として生成します。...
インタープリタされた述語とコンパイルされた述語の組合せ
プログラムの一部(ひとつかそれ以上のファイル)をコンパイルし、コンパイルされていないインタプリトされるプログラムと動的にリンクすることができます。これは対話型IF/Prologセッションを中断することなくなされ、もしコンパイルした述語と対応する未コンパイルの述語があれば、コンパイル済みの述語と置き換えます。...
エラーメッセージ
IF/Prologのコードをコンパイルしロードする際、以下のエラーと警告メッセージが生じることがあります。必要に応じて、エラーメッセージは、問題のあったファイル名やエラーを起こした項と共に出されます。...
IF/Prolog by Siemens
言語
English
Japanese
German
サーバー
USA
Japan
サイトマップ
索引
目次
全体目次
全体索引
印刷向き
imode
PDA
探索
document: http://www.ifcomputer.co.jp/IFProlog/Manuals/v4.1/user_guide/compile/home_jp.html
published 2008/7/21 update 1995/11/7 (c) 1996-2006 IF Computer Japan
IF Computer 〒113-0022 Tel 03-5814-3352 ifcj@ifcomputer.co.jp
Customer Support 東京都文京区千駄木5-28-2   http://www.ifcomputer.co.jp
冒頭へ managed with ubiCMS