したがって、基本的には Prolog を使用して、GNU-Prolog を使用して多数の C 関数を呼び出しています。
次に例を示します。
int add(int a, int b)
{
int res = a + b;
return res;
}
この関数を Prolog コードから呼び出したい場合は、次のインターフェイスを作成する必要があります。
#include <gprolog.h>
PlBool add_interface(int a, int b, int* r)
{
*r = add(a, b);
}
Prologコードでは、これを追加する必要があります:
:- foreign(add(+integer, +integer, -integer)).
そのため、多数の C 関数を扱っており、これらのインターフェイスを 1 つずつ手動で作成すると、かなり時間がかかります...
もちろん、この作成を行うためのアドホック ツールを作成することはできますが (おそらく CIL を使用して..)、車輪の再発明はしたくありません。
だから私の質問は:
C 関数から Prolog 呼び出し可能なインターフェイスを自動的に生成できるツールはありますか?