加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux g在C语言中嵌入Prolog逻辑引擎

发布时间:2020-12-13 23:50:27 所属栏目:Linux 来源:网络整理
导读:我在C程序中有一些逻辑不仅非常复杂,它需要多个解决方案,而Prolog是理想的.它有点像防火墙配置脚本,检查操作的输入,但有时需要更多的操作. 我想要的是这样的: class PrologEngine{ LoadLogic(const char* filename) throw PrologException; // Load a file
我在C程序中有一些逻辑不仅非常复杂,它需要多个解决方案,而Prolog是理想的.它有点像防火墙配置脚本,检查操作的输入,但有时需要更多的操作.

我想要的是这样的:

class PrologEngine
{
    LoadLogic(const char* filename) throw PrologException; // Load a file of prolog rules,predicates facts etc in textual format. Must be callable multiple times to load AND COMPILE (for speed) prolog rule files.

    std::vector<std::string> Evaluate(const char* predicate_in_string_form = "execute(input,Result)") throw PrologException; Returns a vector of matching predicates in text form.

};

它无需回调C语言.

AMI Prolog似乎得到了它,但它在Linux上不可用.我正在尝试使用SWI-Prolog,只能找到2个例子和令人难以置信的拜占庭API(我的观点)

有人能指出一个接近我正在寻找的例子吗?

解决方法

有 A C++ interface to SWI-Prolog,这是高水平.

我是fighting with it,这是一个桥接到OpenGL的例子:

PREDICATE(glEvalCoord1d,1) {
 double u = A1;
 glEvalCoord1d( u );
 return TRUE;
}

这个干净的代码隐藏了许多’bizantinism’,使用隐式类型转换和一些宏.该接口是非常因子评分和双向的:从C调用Prolog的有PlCall(“跑”的查询,类似评估你的答案暴露)或更有条理PlQuery,多结果…

如果您不需要链接到openGl,或者可以等到我希望从SWI-Prolog邮件列表中获得的答案,您应该对其进行评估.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读