形式陈述
求值上下文是带有唯一洞
其中
例如按值调用的算术语言可取
它规定先求左操作数,再在左侧已成为值
直觉
求值上下文把“下一步在哪里发生”从“这一步怎样发生”中分离出来。基本归约规则只描述局部 redex(可归约式),语境闭包则把该局部变化传播到整个抽象语法树。
例子与边界
在表达式
“每个非值项都有唯一分解
推论与应用
求值上下文可紧凑定义结构化操作语义、证明确定性与进展性质,并用于控制算子、异常、continuation 和程序变换中的上下文等价分析。它与任意程序上下文不同:前者只描述策略允许的求值位置。
参考资料
- Robert Harper, Practical Foundations for Programming Languages, 2nd ed., Cambridge University Press, 2016,Ch. 5, dynamics and evaluation contexts。
- Gordon D. Plotkin, A Structural Approach to Operational Semantics, DAIMI FN-19, 1981; reprinted 2004,§§2–4。