K-Prolog Compiler Version 6.0 
これらの行は、Prolog の項として読まれますから、 関数名に使用できる文字には制限があります。 関数名がそのままではアトムとして認識されない場合は、' で囲って 引用アトムにして下さい。
[例] '_exit'(int).
関数名の前に bool を書いた場合は、関数値の非0/0 に 従って述語を成功/失敗させることを指示します。無指定の場合、 述語は出力引数の単一化が成功する限り、関数値によらず成功します。
ここで、'入力'とは、Cの関数の入口で値を持っている引数です。
'出力'とは、ポインタを渡すことにより、値を返してくる引数です。
'配列'とは、ポインタを渡すことにより値を渡し、または返してくる引数で
す。
限界指定を指定した場合、実行時に引数が変数である時には、
指定の限界の大きさの配列と対応する複合項が作られます。
無指定の時は実行時に複合項のアリティで決定します。
返値限界指定とは、限界指定の一般形で引数として渡した配列のうち、使用
した部分の大きさを整数出力で返してくる場合に有効で、結果として配列の
使用した部分に対応する複合項が作られます。
文字列出力、漢字列出力は、それぞれCの関数にバッファのポインタを渡し、 そのなかに書き込まれた文字列を返すものです。漢字列は漢字コードを含む文字 列と考えますが、長さは漢字としての文字数です。
文字列入力、漢字列入力の長さに限界はありません。 文字列入力、漢字列入力は、Prologの文字列を C言語の文字列に変換した結果へのポインタを渡します。
任意型は、実行時に型を指定するもので、 int(式)、float(式)、char(文字列)、kanji(漢字列)に対し、それぞれ、 入力のときは int、float、[char]、[kanji]、 出力のときは *int、*float、*char、*kanjiとして扱います。 任意型出力の引数には、引数ごとに実行時に512バイトのバッファが確保されています。 バッファの容量を定義時に明示的に指定することもできます。任意型には、配列は用意されていません。
項型を指定すると、Prologの項そのものを扱うことができます。 入力の場合はC言語の関数に項がわたります。出力の場合、 引数に代入された項をProlog言語側の引数と単一化します。 項をC言語の関数の中で扱うためのAPIが提供されています。
浮動小数点数は、配列の場合は単精度、配列でない場合は倍精度で扱います。
一般に、引数はC言語の関数に渡される時に値が評価され、
Prolog に返ってきた時に、単一化で値を結びつけます。
表の中で、Nは2次元配列の2番目の限界を表す整数、
I、Jは配列限界を表す整数、または整数式、
または~K(Kは整数)の形です。~Kのとき、Kは引数番号で、
その引数の内容が配列限界とみなされます。Kとして指定する引き数は、Kを
参照する引き数よりも前になければなりません。
Sは整数でバッファ容量のバイトサイズを指定するものです。
ここで、'入力'とは、Cの関数からPrologの述語に値を渡すべき引数です。
'出力'とは、Prologの述語が値を返してくる引数です。
配列の場合、配列限界を指定しない時は2が仮定されます。
対応するPrologの述語が呼び出されるとき、 入力に当たる引数はPrologの項に変換されて述語の引数と単一化されます。 出力にあたる引数は変数のままです。 述語は決定的に実行され、 成功したならば出力にあたる引数をC言語の表現に変換したのち、