我是计算机科学专业的学生,​​并且正在学习有关Prolog进行逻辑编程的知识。

我发现了一个有趣的Prolog解释器 picoProlog (http://spivey.oriel.ox.ac.uk/corner/Logic_Programming)。

要了解有关Prolog的更多信息,我正在尝试编译其源代码,但是失败了。

他们在此网页中说:

解释器源代码以Pascal的最小方言编写,避免了包括指针在内的许多功能,而是使用了宏来克服Pascal的某些局限性,其风格受到了Kernighan和Plauger在Pascal中的《软件工具》一书的启发。它带有从Pascal方言到C的转换器,可用于构建解释器,也可用于所需的宏处理器。

要在Linux机器上构建解释器,只需解压缩tar文件并键入make。该建筑分为几个阶段:


  • 首先,Pascal-to-C转换器ptc是从C源代码构建的,包括使用lex和yacc编写的词法分析器和解析器。文件README提供了此转换器接受的非常严格的Pascal子集的一些详细信息。
  • 接下来,使用ptc构建宏处理器ppp。
  • 最后,通过首先使用ppp扩展宏以获得文件pprolog.p,然后使用ptc转换为C,最后编译C代码,从文件pprolog.x中的源代码构建picoProlog解释器。


  • 文字和软件版权©J.M. Spivey,1996,2002,2010。

    他们说关于仅在Linux上编译,所以我不知道如何在Windows机器上编译此源代码。我可以在 Windows XP 上使用 Turbo Pascal 7.0 (无需任何要求)进行编译吗?您可以删除仅用于 Pascal编译的脚本的某些部分吗?

    最佳答案

    我在谷歌搜索时发现了这个问题,尽管它很旧,但我认为添加程序作者的明确答案会有所帮助。

    的确,让picoProlog与Free Pascal编译器一起编译并不难。我已将Marco的建议纳入源代码,修复了一个已发现的小错误,并为Free Pascal的一个奇怪功能添加了解决方法。结果可以在“BitBucket”页面上找到:

    http://bitbucket.org/Spivey/pprolog

    以及自述文件中的构建说明。

    注意:我是在x86_64的Linux下使用Free Pascal构建的,但尚未在Windows上对其进行测试。我看不出它不起作用的原因。

    关于c - 如何从源代码编译picoProlog?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29907432/

    10-13 04:18