最初の例は、新しい組み込み述語 print_it(String,Length)を書く場合を示しています。この述語は、与えられた文字列をプリントし、その長さを返してきます。...
Move to
=> <=
Darueber Spitze
Zoom to
C関数のIF/PrologのC述語への変換
C述語ためのコンパイルとリンク
ライブラリ関数を使ったプログラム例
あなたのプログラムが動かない場合
See also
イントロダクション
開発にさらに便利なIF/Prologライブラリ関数
バックトラックしないProlog述語をC言語で書く
バックトラックするProlog述語をC言語で書く
cgenマニュアル
低レベルのインタフェイス
IF/Prolog ストリーム ・インタフェース
付録 A - cpred.hのリスト
付録 B - cpro.hのリスト
IF Computer > IF/Prolog > Manuals > IF/Prolog V4.1 マニュアル > IF/Prolog Interfaces > IF/PrologからC言語へのインタフェ−ス > バックトラックしないProlog述語をC言語で書く

バックトラックしない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.

最初の例は、新しい組み込み述語 print_it(String,Length)を書く場合を示しています。この述語は、与えられた文字列をプリントし、その長さを返してきます。

C言語で書かれたプログラムをIF/Prologにリンクする前に、もう一度テスト(デバッグも!)しておいた方がいいでしょう。この関数がCでのみ実行されるように書かれたプログラムを示します。(main()関数を加えなければならないということです。)

/* -------------------------------------------------- */ /* filename : $PROROOT/demos/c/printit.c */ /* -------------------------------------------------- */ main() /* test routine for stand alone program */ { int string_length; if (Printit("hi there", &string_length) != 0) { printf("C-predicate Printit has succeeded\n\n"); printf("string length = %d\n", string_length); } }

/* -------------------------------------------------- */ Printit(text, length) /* simple output routine */ char *text; int *length; { printf("text = %s\n", text); *length= strlen(text); return 1; } /* -------------------------------------------------- */

プログラムをテストするためにコンパイルし実行させると、結果は以下のようになります。

% cc -o printit printit.c % printit text = hi there C-Predicate printit has succeeded

string length = 8 %

read on...
C関数のIF/PrologのC述語への変換
以下に示す手続きに従って、例題プログラムprintit.cを見てみましょう。以下のように打って、新しい"作業用"コピ−を作り、ファイルnewpreds.cで6つのステップを実行させましょう。...
C述語ためのコンパイルとリンク
コマンドスクリプトifccとiflinkはCコードをコンパイル・IF/Prologシステムにリンクするために使います。...
ライブラリ関数を使ったプログラム例
C述語のnumbervars(A,B,C)は、最初のTERMの異なった自由変数の数を数えます。...
あなたのプログラムが動かない場合
・コンパイラに、ディレクトリ$PROROOT/cの中のライブラリ−ファイルとcpred.hを指定しましたか?...
IF/Prolog by Siemens
Sprache
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/cpredw/home_de.html
published 2008/8/25 update 1995/11/7 (c) 1996-2006 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