其他分享
首页 > 其他分享> > 用C或C实现Prolog

用C或C实现Prolog

作者:互联网

我想知道Prolog在C或C中的实现方式如何.我主要感兴趣的是将它构建为C或C库,尽管解释器应用程序也可以.我有兴趣阅读它的内部,即查询执行,即查找解决方案和涉及的相关数据类型.如果您向我推荐任何有关主题的阅读材料或任何直接建议/建议,我将很高兴.读数可能适用于其他OOP语言或一般OOP.最耗尽的材料将解决这个问题.

解决方法:

如果你想看看C中实现的Prolog系统如何从C/C++作为库使用,请查看SWI-Prolog.它提供了一个完全双向的接口,包括Unix / Mac / Window的非确定性 – 以及很多,很多更多.想想constraints.

另一方面,您也在询问其实际实施情况.有两种方法可以解决这个问题.你可以从最底层开始,从一个级别到另一个级别自己动手.或者你可以从Prolog开始,然后从在Prolog中实现Prolog的元解释器开始.从这里你可以慢慢挖掘血腥.

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

另一种方法是首先学习Prolog,然后详细研究元解释器.通过这种方式,您可以从完全不同的角度学习Prolog.而且你也可能获得你不会得到的见解.您可以从经典的三句子元解释器开始,它重复使用Prolog的大部分功能.根据您的兴趣,您可以开始重新部分它.好处是你支付(代码大小)几乎只为你想要挖掘的部分和重用语言的其他部分.

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

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

标签:c,prolog
来源: https://codeday.me/bug/20191004/1853603.html