IF Computer > IF/Prolog > Manuals > IF/Prolog V4.1 マニュアル > IF/Prolog Interfaces > IF/PrologからC言語へのインタフェ−ス > バックトラックしないProlog述語をC言語で書く

バックトラックしないProlog述語をC言語で書く

IF/Prolog by Siemens
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 %

document: http://www.ifcomputer.co.jp/IFProlog/Manuals/v4.1/advanced_feature/c_interface/cpredw/print_de.html
published 2008/11/17 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
Back> managed with ubiCMS