関数名...
Move to
Next Prev
Up Top
See also
一覧表
C関数とIF/Prologを接続する関数
エラーチェックのための関数
単一化関数
変数の扱い
アトムの扱い
整数の扱い
倍精度実数の扱い
リストの扱い
複合項の扱い
複合項の作成
IF Computer > IF/Prolog > Manuals > IF/Prolog V4.1 マニュアル > IF/Prolog Interfaces > IF/PrologからC言語へのインタフェ−ス > 開発にさらに便利なIF/Prologライブラリ関数 > ライブラリ関数の概要 > C関数とIF/Prologを接続する関数

C関数と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. Dedicated technical support for IF/Prolog ended Dec 31 2008. This site is maintained as a community service only.

関数名 Cboot CPRED CPRIM 概要 #include "cpred.h"

int Cboot()

int CPRIM(PROLOG_FUNCTOR,ARITY,C_FUNCT) char *PROLOG_FUNCTOR; int ARITY; int (*C_FUNCT)();

int CPRED(PROLOG_FUNCTOR,ARITY,C_FUNCT,SIZE) char *PROLOG_FUNCTOR; int ARITY; int (*C_FUNCT)(); int SIZE;

Cbootは、立ち上げの時にIF/Prologによって呼び出されます。標準のIF/Prologには、この名前のダミ−関数があります。ですから新しいバ−ジョンのPrologをリンクする時には、ダミ−関数ではなくCbootが呼び出されるように、プログラムの中に必ずCbootがなければなりません。Cbootは、すべての必要なCPRIMコ−ルを含まなければなりません。つまり新しい述語の数と同じだけCPRIMとCPREDが呼び出されなければなりません。いくつかのファイルにC述語がある場合には、それぞれのファイルにCbootX()の形で、たとえばCboot1(),Cboot2(),のように区別をつけるのが良いでしょう。そしてそのファイルには、すべてのCPRED()とCPRIM()のコ−ルが含まれています。それぞれのCbootX()の呼び出しを含んだひとつのファイルが実際にCboot()を呼び出します。

CPRIMは、Cで書かれた簡単な述語をPrologの名前にリンクします。第1引数は、Prologで述語の名前になるCの文字列であり、第2引数はアリティであり、第3引数はC関数へのポインタです。CPRIM関数の呼び出しは、バックトラックしない述語と共に使われます。

注意: CPRIMやCPREDは、cpred.hにおいてマクロ定義されています。

CPREDは、Cで書かれたバックトラックする述語をPrologの名前にリンクします。これは、バックトラツクする述語に対してCPRIMの代わりに使われます。第1引数は、Prologで述語の名前になるCの文字列であり、第2引数はアリティであり、第3引数はC関数へのポインタであり、第4引数は、バックトラックに使用するロ−カルなデ−タ構造の大きさです。CPREDの用法については、”バックトラックするProlog述語をC言語で書く”の章で説明されています。

read on...
IF/Prolog by Siemens
Language
English
Japanese
German
Server
USA
Japan
Site Access
Local Index
Local Contents
Site Contents
Site Index
Printer Friendly
For imode
For PDA
Search
document: http://www.ifcomputer.co.jp/IFProlog/Manuals/v4.1/advanced_feature/c_interface/libfunc/summ/conn/home_en.html
published 2012/5/21 update 1994/7/28 (c) 1996-2009 IF Computer Japan
IF Computer 5-28-2 Sendagi, Bunkyo-ku Tel +81-3-5814-3352 start (AT) ifcomputer.com
Customer Support Tokyo 113-0022 Japan   http://www.ifcomputer.com
scroll to top managed with ubiCMS