如何从源代码编译picoProlog?

5nx*_*5nx 4 c pascal prolog

我是计算机科学专业的学生,​​正在学习 Prolog 逻辑编程。

\n\n

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

\n\n

为了更多地了解Prolog,我尝试编译他们的源代码,但失败了。

\n\n

在这个网页中,他们说:

\n\n
\n

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

\n\n

要在 Linux 机器上构建解释器,只需提取 tar 文件并输入 make。该建筑分几个阶段进行:

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

文本和软件版权 \xc2\xa9 JM Spivey,1996、2002、2010。

\n
\n\n

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

\n

Mik*_*vey 5

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

使用 Free Pascal 编译器来编译 picoProlog 确实不太难。我已将 Marco 的建议合并到源代码中,修复了一个已发现的小错误,并为 Free Pascal 的一个奇怪功能添加了解决方法。结果可以在 GitHub 页面上找到:

https://github.com/Spivoxity/pprolog

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

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

编辑 2022 年 10 月 18 日——用 GitHub 替换 BitBucket。