8-Typed Arithmetic Expressions
静态类型
在 Untyped Arithmetic Expressions 里有如下定义:
如果一个范式不是一个值,则称此项受阻
在这个小型语言里引入两个类型 Nat Bool,来区分布尔值项和数值项
断言“项 t 有类型 T”意味着 t 的运算结果的类型在运行之前就可以被确定,比如 succ 0;至于 if true then 0 else false 则不一定会指向任何一个类型
类型关系 / 类型规则
算术表达式的类型关系记为 t : T
定义:算术表达式的类型关系是项和类型的最小二元关系;t 是可类型化的 typable / well-typed 指存在某个 T 使 t : T
类型推导与无类型算术表达式的求值类似
安全性 = 进展 + 保持 Safety = Progress + Preservation
进展:一个良类型项 well-typed 项不会处于受阻 stuck 状态,即如果 t 是一个良类型的,那么 t 要么是一个值,要么是存在 t' 使得 t → t'
保持:一个良类型项经过一步求值得到的项仍然是良类型的,即如果 t : T → t' 那么 t' : T
这两个性质告诉我们一个良类型项在求值过程中不会受阻,进展和保持可以由归纳证明



浙公网安备 33010602011771号