轻量级 Java 与 PVS 中的类型理论与验证
轻量级 Java 中的类型分配与组合逻辑编码
在轻量级 Java(FJ̸ C)的类型分配研究中,PT 算法起到了关键作用。PT 会根据对象出现的上下文以及初始化它的具体表达式来计算类型。我们可以证明 PT 具有以下预期性质:
- 定理 19(PT 的可靠性) :如果 PT (e; E) = ⟨Γ; σ⟩; E ′,那么 Γ; E ′ ⊢C e : σ。
- 定理 20(PT 的完备性) :如果 Γ; E ⊢C e : σ(其中 e 不是类定义的一部分),那么存在一个类型 ⟨Γ′; σ′⟩; E 使得 PT (e; E) = ⟨Γ′; σ′⟩; E,并且存在一个替换 S 使得 S Γ′ ⊆Γ,且 σ = S σ′。
下面是一个简单的面向对象程序示例,它没有头范式:
class C extends Object {
C m() { return this.m(); }
}
这个程序中的方法 m 会递归调用自身, new C().m() 会陷入无限循环:
new C().m() → this.m()[new C()/this] = new C().m()
因此, new C().m() 没有范式,甚至没有头范式,这与 ML 程序 (fix x.
超级会员免费看
订阅专栏 解锁全文
17

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



