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