IF/PrologのCインタフェ−スによって、ユ−ザはIF/Prologインタプリタとコンパイラを、個々の要求を満たすようカスタマイズすることができます。ユ−ザは、C言語により独自の組み込み述語を書くことができ、それらを普通のPrologの述語と同様に使うことができます。...
移動
次へ 前へ
上へ 最上
参考
イントロダクション
開発にさらに便利なIF/Prologライブラリ関数
バックトラックしないProlog述語をC言語で書く
バックトラックするProlog述語をC言語で書く
cgenマニュアル
低レベルのインタフェイス
IF/Prolog ストリーム ・インタフェース
付録 A - cpred.hのリスト
付録 B - cpro.hのリスト
イフコンピュータ > IF/Prolog > マニュアル > IF/Prolog V4.1 マニュアル > IF/Prolog Interfaces > IF/PrologからC言語へのインタフェ−ス > イントロダクション

イントロダクション

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インタフェ−スによって、ユ−ザはIF/Prologインタプリタとコンパイラを、個々の要求を満たすようカスタマイズすることができます。ユ−ザは、C言語により独自の組み込み述語を書くことができ、それらを普通のPrologの述語と同様に使うことができます。

Cインタフェ−スが提供する一連のC機能によって、Prologのすべてのデ−タタイプ(アトム、項、整数、構造、リスト、変数)およびPrologのすべての制御機能(バックトラッキング、カット、失敗)が処理できます。

<C言語インタフェ−スの応用例>

-そのコンピュ−タに固有のハ−ドウェアとのインタフェ−ス -グラフィックシステムとの接続 -FORTRAN,Pascal,アセンブラのような他の言語とのインタフェ−ス -デ−タベ−スへのアクセス、またはデ−タベ−スル−チンを使用する -Prologからオペレ−ティングシステムの命令を使用 -知識ベ−スとの接続 -他のPrologシステムからの移植の際、使用可能な述語の実現 -IF/PrologセッションのC言語からの実行

Cインタフェ−スマニュアルで用いられているすべてのプログラム例は、IF/Prologと共に提供されています。これらは $PROROOT/demos/cディレクトリの中にあります。またこのマニュアルで述べるその他すべてのファイルは、図C-1で示されているように、ディレクトリ$PROPOOT/cの中にあります。 注意:この記述は、完全にはUNIXのオペレ−ションと同等な機能を提供していないIBM-PC版には必ずしも適用できるとは限りません。

+-- ifprolog* |-- ifcc* |-- iflink* +---- bin/ ------------|-- ifsem* | +-- ifopt0* | |---- ifprolog/ -------+-- *.pst | +-- *.sem | |---- library/ --------+-- *.sem | |-- io/ | +-- data/ | | | +-- cpred.h |---- c/ --------------|-- cpro.h | |-- io.h | |-- main.o | |-- spoot.o $PROROOT/ -------| +-- libifprolog.a | | | +--ifcc.1 |---- main/ -----------|-- ifprolog.1 | +-- ifsem.1 | |--- util/ -----------+-- cgen/ | |-- emacs/ | |-- gks/ | |-- oracle/ | +-- sql/ | | +-- benchmarks/ |---- demos/ ---------|-- c/ | |-- cpro/ | |-- f77/ | |-- pro/ | +-- streams/ | | -- x11r4/ --------| | | | |--- optional |--- motif11/ ------|

図C-1:IF/Prologのデイレクトリ構造

図C-2で示されているように標準のIF/Prologのインタプリタは、2つの部分からできています。

- $PROROOT/bin/ifprologにある実行可能なコ−ド    (バイナリ) - $PROROOT/library/*.semにあるライブラリ−のファイル(Prolog)

+-------------+ +--------------+ +---------+ | | | break.sem | | users |<---->| IF/Prolog |<---->| consult.sem | | Prolog | | binary | | debug.sem | | Program | | | | etc... | +---------+ +-------------+ +--------------+

図C-2:IF/Prologの標準構成

あなたの定義したC述語をIF/Prologのインタプリタ/コンパイラと共に使用するためには、新しいIF/Prologのオブジェクトは、新しい述語を含むファイルのコンパイル(たとえばnewpreds.c)し、そのファイルを通常のIF/Prologのオブジェクトにリンクして生成しなければなりません。(図C-3参照)

+------------+ | newpreds.c | +------------+ | +------------+ | ifcc | +------------+ | +--------+ +------------+ +---------------+ +--------+ | main.o | | newpreds.o | | libifprolog.a | | curses | +--------+ +------------+ +---------------+ +--------+ | | | | +------------------------------------------------+ | +----------+ | iflink | +----------+ | +--------------------+ +--------------+ +---------+ | IF/Prolog binary | | break.sem | | user's | | | | consut.sem | | Prolog |<-->| |<-->| debug.sem | | Program | | user's C-functions | | etc... | +---------+ +--------------------+ +--------------+

図C-3:IF/Prologの新しいバ−ジョンの生成

続く..
IF/Prolog by Siemens
言語
English
Japanese
German
サーバー
USA
Japan
サイトマップ
索引
目次
全体目次
全体索引
印刷向き
imode
PDA
探索
document: http://www.ifcomputer.co.jp/IFProlog/Manuals/v4.1/advanced_feature/c_interface/intro/home_jp.html
published 2008/7/21 update 1995/11/6 (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