Prolog 述語が使用されている C ファイルに基づいて実行可能ファイルをビルドしたいと考えています。GNU Prolog を使いたい。
(gnu プロローグ チュートリアルに基づいて) 成功し、examp_c.c、examp.pl をビルドしました。
#include <string.h>
#include <gprolog.h>
PlBool
my_call(PlTerm goal)
{
PlTerm *arg;
int functor, arity;
int result;
arg = Pl_Rd_Callable_Check(goal, &functor, &arity);
Pl_Query_Begin(PL_FALSE);
result = Pl_Query_Call(functor, arity, arg);
Pl_Query_End(PL_KEEP_FOR_PROLOG);
return (result == PL_SUCCESS);
}
を使用してコンパイル
gplc examp.pl examp_c.c
実行可能な例を呼び出すと、Prolog インタープリターが開始/エミュレートされます。
GNU Prolog 1.4.4 (64 bits)
Compiled Aug 3 2013, 20:06:22 with gcc
By Daniel Diaz
Copyright (C) 1999-2013 Daniel Diaz
| ?-
しかし、私が望むのは、Prolog インタープリターを介してユーザーと通信することなく、Prolog を内部的に呼び出す C プログラムを持つことです。Prolog 述語は、C プログラムの引数として、または C プログラム内で送信するか、内部的に生成する必要があります。
これの例を知っていますか?それとも何かを誤解していましたか、それは不可能ですか?
ほら、私は初心者として始めたばかりです...助けていただければ幸いです:-) よろしくお願いします。