谁能对SICP的后两章(计算机程序的结构和解释),ch4元语言抽象和ch5使用注册机进行清晰,简洁的解释?
我还想知道这两章的内容与标准的本科编译器类(class)是否(以及如何)不同。
最佳答案
长期免责声明,实际答案在下面
如果您真的想要有关如何从头开始构建编译器的信息,并且需要与所有相关的实用分析,编译,生成和优化技术同步进行,那么dragon book将是更好的选择。
如果您想使用解释器从头开始构建一种干净的编程语言,我会推荐Friedman的EPL书。
如果您对学士学位论文的要求是对前两本书中的所有基本问题都有更深入的了解,请继续阅读下面的答案。 SICP是一项教育性的工作,它试图以一种清晰的语言传达基本概念。它将不涉及有关左递归解析器,公共(public)子表达式消除,x86 SSE扩展等的详细信息。
SICP CH4-5
用来解释所涉及的复杂概念的技术是在您眼前从头开始构建一系列计算机语言。
第4章从构建元循环Scheme解释器开始:这是一个用Scheme本身编写的小型Scheme解释器。这将为您提供递归解释器的基础知识,并为在第4-5章的其余部分中构建一系列迷你语言奠定基础。它回答了以下问题:如何表示已解析的代码,涉及哪些数据结构,如何将主机与基本语言分开等。
重要的是,它向您显示语言解释器本身就是另一台计算机程序。
第4章的其余部分向您展示了如何通过修改以前的解释器来改变语言的风格。最大的两个是惰性评估和逻辑编程。
第5章对“注册机器”进行了粗略的模型化,以抽象的方式代表了当今的计算机。他们构造了一种注册机器语言,可以用作所有意图和目的的汇编语言。他们介绍了完成下一个步骤所需的所有数据结构和控制流结构:用这种机器语言构建一个方案解释器。某种程度上仍与元循环解释器相似。之后,他们跳出了深渊,用他们的注册机器语言构造了一个方案编译器。完成组装步骤,尾部递归优化,垃圾回收,词法寻址,跟踪等。
尽管SICP构造了玩具解释器和编译器,但从概念上讲它们已经足够完整,可以使您立即掌握最新的实用技术。例如,GCC的中间代码与SICP的注册机器代码非常相似,而these guys直接为汇编语言的ARM微 Controller 实现了SICP的解释器。
关于compiler-construction - SICP后两章的简要说明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4266733/