探索JavaScript与Java Jr.的类型系统及语义模型
1. JavaScript类型系统分析
1.1 类型健全性
在分析JavaScript程序的类型系统时,类型健全性是一个关键概念。通过定义类型化配置的概念,并证明类型保存和进展性,建立了语义与类型系统之间的联系。
核心JavaScript的配置是一个三元组 Σ, l0, s ,分别代表存储、激活对象的引用和语句。此外,还有表达式配置 Σ, l0, e 的辅助概念。操作语义的重写关系 →s 和 →e 以明显的方式在配置上诱导出相应的关系。
除了变量的类型环境 Γ 外,还有一个堆环境 ∆ 用于对存储中的引用进行类型化。它将存储位置映射到 Obj(ϕ)(ϱ) 形式的对象类型。这种类型分配必须与实际存储兼容,即 ∆⊢h Σ 。兼容性意味着 dom(∆) = dom(Σ) ,并且对于 dom(Σ) 中的每个 l 和 dom(Σ(l)) 中的每个 str ,如果 ∆(l) = Obj(ϕ)(str : τ, ϱ) ,则值 Σ(l)(str) 的类型为 τ 。
配置的类型规则定义了两个判断: ∆, Γ
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



