试图理解沃思';s Pascal pl/0编译器代码

试图理解沃思';s Pascal pl/0编译器代码,pascal,freepascal,Pascal,Freepascal,有没有对Wirth的源代码进行简单的解释,或者甚至是添加更多注释的版本,以便我了解它是如何工作的 Wirths pl/0编译器位于以下位置: 我的主要目标是修改它,使其与Oberon类似地使用整数数组,但尽可能少地接触代码 Oberon在此引用:代码在沃思的书中有详细描述。我正在看1976年的版本,里面有大约70页关于这个项目的内容 据我所知,这本书的1976年版本并不在线,但他后来将代码移植到Modula-2和Oberon。该书以免费PDF格式提供,但PL/0章节已被删除并扩展为第二本书(在线

有没有对Wirth的源代码进行简单的解释,或者甚至是添加更多注释的版本,以便我了解它是如何工作的

Wirths pl/0编译器位于以下位置:

我的主要目标是修改它,使其与Oberon类似地使用整数数组,但尽可能少地接触代码


Oberon在此引用:

代码在沃思的书中有详细描述。我正在看1976年的版本,里面有大约70页关于这个项目的内容

据我所知,这本书的1976年版本并不在线,但他后来将代码移植到Modula-2和Oberon。该书以免费PDF格式提供,但PL/0章节已被删除并扩展为第二本书(在线免费)

这本扩展的书使用了一种更健壮的语言Oberon-0,它包括数组、记录、类型等。他详细讨论了如何实现这些东西

整个编译器是不同的,因为它是用Oberon编写的,目标是不同的机器,但是Wirth的所有编译器都有相同的基本结构,所以您应该能够在它们之间映射想法

另外,他还用pascal编写了另一个扩展的编译器(ISO pascal的“p4”参考实现)。该编译器在本书中得到了广泛的研究和记录,现在已转化为一个很好的网站,其中包含对源代码的超文本交叉引用


最后,还有Samuel G Williams的PL/0编译器的python端口,包括两个额外的后端,以及Wirth原始代码(您链接的程序)的副本,稍作修改以在免费Pascal下运行。

这不是编译器。类似的问题回答得很好,强烈支持你的第一段。那本书正是应该读的。没有合理的替代品。