我是计算机科学专业的学生,正在学习 Prolog 逻辑编程。
\n\n我发现了一个有趣的 Prolog 解释器picoProlog ( http://spivey.oriel.ox.ac.uk/corner/Logic_Programming )。
\n\n为了更多地了解Prolog,我尝试编译他们的源代码,但失败了。
\n\n在这个网页中,他们说:
\n\n\n\n\n解释器源代码是用 Pascal 的最小方言编写的,避免了包括指针在内的许多功能,但使用宏来克服 Pascal 的一些限制,其风格受到 Kernighan 和 Plauger 的《Pascal 中的软件工具》一书的启发。它附带了一个从 Pascal 方言到 C 的翻译器,可用于构建解释器以及所需的宏处理器的源代码。
\n\n要在 Linux 机器上构建解释器,只需提取 tar 文件并输入 make。该建筑分几个阶段进行:
\n\n\n
\n\n- 首先,Pascal-to-C 转换器 ptc 是从 C 源代码构建的,包括用 lex 和 yacc 编写的词法分析器和解析器。文件 README 提供了该转换器接受的非常有限的 Pascal 子集的一些详细信息。
\n- 接下来,使用ptc来构建宏处理器ppp。
\n- 最后,从文件 pprolog.x 中的源代码构建 picoProlog 解释器,首先使用 ppp 扩展宏以获得文件 pprolog.p,然后使用 ptc 翻译为 C,最后编译 C 代码。
\n文本和软件版权 \xc2\xa9 JM Spivey,1996、2002、2010。
\n
他们说只能在Linux上编译,所以我不知道如何在Windows机器上编译这个源代码。我可以在Windows XP上使用Turbo Pascal 7.0(无任何要求)编译它吗?您可以删除仅用于Pascal 编译的脚本的某些部分吗?
\n我在谷歌搜索时发现了这个问题,虽然它很旧,但我认为添加该程序作者的明确答案会很有帮助。
使用 Free Pascal 编译器来编译 picoProlog 确实不太难。我已将 Marco 的建议合并到源代码中,修复了一个已发现的小错误,并为 Free Pascal 的一个奇怪功能添加了解决方法。结果可以在 GitHub 页面上找到:
https://github.com/Spivoxity/pprolog
以及自述文件中的构建说明。
注意:我在 x86_64 上的 Linux 下使用 Free Pascal 构建了这个,但尚未在 Windows 上进行测试。我看不出它不起作用的原因。
编辑 2022 年 10 月 18 日——用 GitHub 替换 BitBucket。