首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图理解Wirth的Pascal pl/0编译器代码

试图理解Wirth的Pascal pl/0编译器代码
EN

Stack Overflow用户
提问于 2013-08-05 04:10:10
回答 1查看 1.9K关注 0票数 5

对于Wirth的源代码是否有一个简单的解释,甚至有一个有更多注释的版本,这样我就可以知道它是如何工作的吗?

Wirths /0编译器在这里:http://www.moorecad.com/standardpascal/plzero.pas

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

此处引用的Oberon:http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf

EN

回答 1

Stack Overflow用户

发布于 2013-08-08 05:37:27

Wirth的书“http://en.wikipedia.org/wiki/Algorithms_%2B_Data_Structures_%3D_Programs”详细描述了该代码。我看的是1976年版,里面有70页关于这个程序的内容。

据我所知,这本书的1976年版本并不在线,但他后来将代码移植到Modula-2,然后是Oberon。欧伯伦版是一个免费的PDF格式,但是PL/0章节被删除并扩展为第二本书(也是免费的在线),https://inf.ethz.ch/personal/wirth/CompilerConstruction/index.html

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

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

或者,他还用pascal ( ISO pascal的"p4“参考实现)编写了另一个扩展编译器。这个编译器已经在“http://homepages.cwi.nl/~steven/pascal/”一书中进行了广泛的研究和记录,现在它变成了一个很好的网站,其中包含了对源代码的超文本交叉引用。

最后,还有Samuel G Williams的PL/0编译器的python端口。我的PL/0语言工具叉包括两个额外的后端,以及Wirth的原始代码(您链接的程序)的副本,稍微修改一下,以便在Free下运行。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18050466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档