2.1 环境

前一章的语言是无趣的, 因而本章我们为语言添加了绑定机制, 探索了绑定的行为.

至于如何实现绑定机制, 替换是一种直接的选择. 然而, 正确的替换的定义是微妙的, 并不如人们所想象的那样简单. 实际上, 历史上著名的逻辑学家, 比如Frege, Hilbert, Russell等, 都在这个问题上栽过跟头. 因此, 我们另辟蹊径, 为解释器添加了一个新的参数—环境.

环境是求值的数据上下文, 其确定了表达式的每个变量的意义. 一个环境是一个从变量的集合到值的集合的映射. 如果采用抽象数据类型的观点, 我们需要确定环境的接口以及其所需要满足的约束条件.

现在我们给出环境的接口的两种不同实现.

你的回應