gpt4 book ai didi

c++ - 在 C 或 C++ 中实现 Prolog

转载 作者:IT老高 更新时间:2023-10-28 23:10:52 25 4
gpt4 key购买 nike

我想知道 C 或 C++ 中的 Prolog 实现会是什么样子。我主要对将其构建为 C 或 C++ 库感兴趣,尽管解释器应用程序也可以。我有兴趣阅读它的内部结构,即查询执行,即找到解决方案和相关的数据类型。如果您向我推荐任何有关主题的读物或任何直接的建议/建议,我会很高兴。读数可能适用于其他 OOP 语言或一般 OOP。大多数令人筋疲力尽的 Material 都会解决这个问题。

最佳答案

如果您想了解如何将用 C 实现的 Prolog 系统作为库从 C/C++ 中使用,请查看 SWI-Prolog .它提供了一个完全双向的接口(interface),包括 Unix/Mac/Window 的非确定性——等等。想想constraints .

另一方面,您也在询问它的实际实现。有两种方法可以解决这个问题。您可以从最底层开始,逐步提高自己的水平。或者你可以从 Prolog 开始,从在 Prolog 中实现 Prolog 的元解释器开始。从这里你可以慢慢挖掘血 block 。

传统的方法是首先从最底层的问题开始,研究各种抽象机器。最常被引用的是 WAM(Warren Abstract Machine),然后有 Alternatives to the WAM你不应该错过。做好准备,从这里到正常工作需要很长的路要走ISO implementation .有许多问题在文献中只是粗略地处理,例如垃圾收集和约束。然而,它们是稳健实现所必需的。

另一种方法是先学习 Prolog,然后详细研究元解释器。通过这种方式,您可能会学会从完全不同的角度看待 Prolog。而且您可能还会获得其他方式无法获得的见解。你可以从经典的三子句元解释器开始,它重用了 Prolog 的大部分功能。然后,根据您的兴趣,您可以开始具体化其中的一部分。好消息是您几乎只为您想要挖掘的部分付费(就代码大小而言)并重用该语言的其他部分。

至少在过去,这种方法导致了各种新的实现技术,例如约束,Erlang ,二进制 Prolog 都首先作为“简单”元解释器存在。只有这样,在理解了语言问题之后,才进行了实际的实现。

还有一点支持先从 Prolog 开始:如果你在它中间停止努力会发生什么?使用自下而上的方法,您最终会得到一组已失效的代码。对于第二种方法,您已经学习了 Prolog。

关于c++ - 在 C 或 C++ 中实现 Prolog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14527682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com