ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

用C或C实现Prolog

2019-10-04 16:14:49  阅读:333  来源: 互联网

标签: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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有