第 12 课 导言
本章介绍如何提升元循环求值器的效率,并说明改变求值器会如何改变语言的解释方式及其带来的优势。
导言
学到这里,你已经(原则上)知道如何在 Scheme 中编写一个 Scheme 解释器了。接下来,我们要做两件事:一是让元循环求值器(metacircular evaluator)更高效;二是看看改变元循环求值器会如何改变语言的解释方式,以及这样做能带来什么好处。具体来说,我们将构造两个新的求值器(evaluator)。第一个求值器把程序的语法分析(syntactic analysis,即分析程序要求做什么)与程序的执行(execution,即真正去做程序要求做的事)分离开来,以此提高效率。第二个求值器则把解释器从应用序(Applicative Order)改为正规序(Normal Order)。
预备知识与学习目标
你应当非常熟悉第 11 课的元循环求值器,本课的大量思想和代码都建立在它之上。
阅读材料
本课的相关阅读材料如下:
- SICP 4.1.7 将语法分析与执行分离
- SICP 4.2 惰性求值
- 课堂讲义(请跳过非确定性求值器部分)
- Therac 论文
准备好了,就继续往下学吧!