【问题标题】:Short explanation of last two chapters of SICPSICP最后两章的简短解释
【发布时间】:2011-01-01 13:45:17
【问题描述】:

谁能给我简明扼要地解释一下 SICP(计算机程序的结构和解释)、ch4 元语言抽象和 ch5 用注册机计算的最后两章?

我还想知道这两章的内容是否(以及如何)与标准的本科编译器课程不同。

【问题讨论】:

    标签: compiler-construction sicp


    【解决方案1】:

    长免责声明,实际答案如下

    如果您真的想了解如何从头开始构建编译器,并且需要了解所有相关的实际解析、编译、生成和优化技术,那么dragon book 将是更好的选择。

    如果您想使用解释器从头开始构建干净的编程语言,我会推荐 Friedman 的 EPL 书。

    如果您的学士论文所追求的是对前两本书中的所有基本问题的更深入理解,那么请继续阅读下面我的回答。 SICP是一部教育作品,它试图用一种尽可能清晰的语言来传达基本概念。它不会详细介绍左递归解析器、常见子表达式消除、x86 SSE 扩展等。

    SICP CH4-5

    用于解释所涉及的复杂概念的技术是在您眼前从头开始构建一系列计算机语言。

    第 4 章首先构建了一个元循环的 Scheme 解释器:一个用 Scheme 本身编写的小型 Scheme 解释器。这将为您提供递归解释器的基础知识,并为构建 ch4-5 其余部分中的一系列迷你语言奠定基础。它回答了如何表示您的已解析代码、涉及哪些数据结构、如何将主机与基础语言分开等问题。 重要的是,它向您展示了语言解释器本身就是另一个计算机程序。 第 4 章的其余部分将向您展示如何通过修改以前的解释器来改变您的语言风格。两大类是惰性求值和逻辑编程。

    第 5 章 制作了一个粗略的“注册机器”模型,以抽象级别表示您当前的计算机。他们构建了一个小的注册机器语言,作为一种汇编语言用于所有意图和目的。他们介绍了下一点所需的所有数据结构和控制流构造:用这种机器语言构建方案解释器。不知何故仍然类似于元循环解释器。然后他们跳出深渊,用他们的寄存器机器语言构造一个方案编译器;完成组装步骤、尾递归优化、垃圾收集、词法寻址、跟踪等。

    尽管 SICP 构建了玩具解释器和编译器,但它们在概念上已经足够完整,可以让您立即掌握当前的实用技术。例如,GCC 的中间代码看起来很像 SICP 的寄存器机器代码,these guys 直接在汇编中为 ARM 微控制器实现了 SICP 的解释器。

    【讨论】:

    • 感谢您的出色回答。看起来 SICP 正是我所需要的!
    • @Beef 基本上,虽然这本书的前三章是高水平的东西,但最后两章是非常低水平的?
    • 我不会用“高/低-lv”这个词来描述它。最后几章更详细地展示了香肠是如何制作的,但在基本层面上是使用 Scheme 制作的。
    猜你喜欢
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    相关资源
    最近更新 更多