我想基于使用 Prolog 谓词的 C 文件构建可执行文件。我想使用 GNU Prolog。
我成功(基于gnu prolog教程)构建了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
| ?-
但我想要的是有一个 C 程序在内部调用 Prolog,而不通过 Prolog 解释器与用户进行通信。Prolog 谓词应该作为 C 程序的/内部的参数提交,或者是内部生成的。
你知道这方面的例子吗?还是我误解了什么,这不可能吗?
你看,我刚开始是新手......我很乐意得到一些帮助:-) 非常感谢提前。