Linux g++在C++中嵌入Prolog逻辑引擎
Linux g++ Embedding Prolog Logic Engine Within C++
我在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(我的观点)
有人能给我举一个接近我想要的例子吗?
SWI Prolog有一个C++接口,这是高级的。
我正在与之斗争,这里有一个桥接到OpenGL:的例子
PREDICATE(glEvalCoord1d, 1) {
double u = A1;
glEvalCoord1d( u );
return TRUE;
}
这个干净的代码隐藏了许多"拜占庭主义",使用隐式类型转换和一些宏。接口非常坚固且双向:要从C++调用Prolog,有PlCall("运行"查询,类似于在答案中暴露的Evaluate)或更结构化的PlQuery,用于多个结果。。。
如果你不需要链接到openGl,或者可以等待我从SWI Prolog邮件列表中得到的答案,你应该对它进行评估。
如果您不介意重写prolog代码以在本机c++头库中使用,我会研究castor库:http://www.mpprogramming.com/cpp/
相关文章:
- 当使用带有VS2019或VSCode的虚幻引擎4.24.2时,我如何修复这些错误的Intellisense错误
- Unity在虚幻引擎4中的"Vector3.Slerp"等效C++?
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- 在虚幻引擎中删除NXOpen对象时崩溃
- 引擎节点:未定义的符号:_ZTV6Config
- Agora.io 虚幻引擎插件构建错误
- <random>在实践中应该实际使用哪个随机数引擎? std::mt19937?
- 无法在 Arch Linux 中启动虚幻引擎 4
- 在虚幻引擎中触发C++ dll的事件
- 在 C/C++ 中加载 OpenSSL 自定义引擎
- 组件上的虚幻引擎可蓝图UFUNCTION会导致构建错误
- 使用Visual Studio在虚幻引擎中创建一个新的类c ++给了我太多的错误
- 提高基于组件的游戏引擎的效率
- 在C++中嵌入 Mozilla 的 JavaScript 引擎
- 如何在虚幻引擎4中将char*转换为TCHAR?
- 如何将外部代码包含在虚幻引擎4 C++项目中
- 如何使用虚幻引擎"filter"多播?
- 我可以在没有Xcode的情况下在Mac上使用带有C++的虚幻引擎吗?
- 在 dll 中嵌入 prolog 引擎
- Linux g++在C++中嵌入Prolog逻辑引擎