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.

Prologバインディングには、以下のようなル−ルが採用されています。

・Prolog言語バインディングではMotif toolkitと同一の名前を使用します。例外として、大文字で始まるアトムは小文字に変換して使います(Prologでは、大文字で始まるアトムを変数として扱うので)。

・Motif toolkitでは多くの場合、マクロを整数の同義語として使います。Prologでは代わりに、同一の文字列値をもつアトムを使います。列挙型も同様に扱います。

・Prolog中のコ−ルバックは、C言語バインディング中のコ−ルバックと同様の働きをします。これは、C言語バインディングの3つのパラメ−タに正確に一致するパラメ−タを持っています。

・Prologのウィジェットやクラスは、ポインタではなく名前(アトム)によって表現されます。新しくつくられたすべてのウィジェットは、特別なProlog名を持ちます。Prologからウィジェットへの参照には、必ずこれらのProlog名を使わなければなりません。

・Toolkit中で配列が使われている場合には、Prologではその代わりにPrologのリストを使います。

・IF/Prolog Motifインタフェ−スでは、Xlibのプリミティブな描画関数を簡単に使用するために特別なドロ−ウィジェットが実現されています。このウィジェットは、自動的にすべての描画操作をセ−ブし、再描画イベントが起きた時にそれを再生し、描画し直します。

・Cに比べPrologでは、柔軟なデ−タ構造を引数として簡単に扱うことができます。このため引数のリストをXtからPrologのリストに変換することにより、プログラミングがかなり容易になります。さらにパラメ−タのチェックは、このインタフェ−スを通して行われます。つまり、パラメ−タに誤りがある場合には、IF/Prologの例外処理が起こります。

・C言語バインディングでのリソ−ス名は、文字列値をもつマクロを使用します。Prologでは、これらの文字列値を直接使用できます。

・通常は、Cのパラメ−タとほぼ同一のパラメ−タをPrologで使用できます。各リストの長さを計算するだけのカウンタは必要なく、システムが自動的に計算します。通常関数の返り値は、対応する述語の第1パラメ−タと単一化されます。

・toolkitの実行中にIF/Prologをアボ−トしたい場合には、quitシグナルを使わなければなりません。これは直ちにアプリケ−ションを中断し、IF/Prologを終了させます。

・このソフトウェアの実現やこのマニュアルの作成において、以下の文献を使用しました。Prolog Motif言語バインディングを使うユ−ザは、X toolkitを有効に使うために、これらの文献あるいはX toolkitによるプログラミングについて一読されるといいでしょう。

X Toolkit Intrinsics - C Language Interface X Window System X Version 11, Release 4 Joel McCormack, Paul Asente, Ralph R. Swick

OSF/Motif Programmer's Guide Volume 1 (2, 3)

・後の2つのマニュアルから、X Window Systemに関する、基礎知識を得ることができるでしょう。このマニュアルに記述されているインターフェースを使用して「実用」アプリケーションを開発することができるようになるためには、次の文献あるいは他の資料を読んでX Window Systemの基本概念と可能性を知っておくといいでしょう。

Xlib - C Language X Interface MIT X Consortium Standard X Version 11, Release 4 James Gettys, Robert W. Scheifler, Ron Newman

<制限>

・複数のディスプレイを使用するアプリケ−ションは実現できません。

・destroyCallbackリストからのコ−ルバックは、ウィジェットが破壊された後に呼び出されます。

・異なるグロ−バルアクションの最大数は10です。

<拡張>

・アプリケ−ションのメインル−プを脱け出ることができるようになりました。メインル−プを脱け出るには、コ−ルバック中でxtBreakMainLoop/0を呼び出さなければなりません。現在のイベントに対する未処理のコ−ルバックがすべて呼び出された後、メインル−プは成功します。

<注意>

・Motif toolkitとMotif ウィジェットセットへのインタフェースを含んだIF/Prologは、起動時に以下のように表示します。

IF/Prolog with OSF/Motif interface


戻る 続く..