文档访问控制与处理的形式化模型解析
1. Java 字段访问分析
在 Java 编程中,字段访问分析是确保程序安全性和正确性的重要环节。其语义通过配置 ⟨e, S⟩ 上的转换系统进行形式化,其中 e 是表达式,S 是将位置映射到值的存储。这本质上是 ClassicJava 的语义,不过进行了一些扩展。例如,[cast cl v]ℓ 的转换扩展到了 v = null 的情况,表达式也被修改以携带程序点 ℓ,并且每个转换都用归约式的程序点进行标记。
类型系统具有类型保留属性。为了表述这一属性,需要使用图 8 中的规则将类型检查扩展到配置。配置的类型判断将位置视为变量,即环境 A 也包含关于位置的假设。判断 ⊢s 表明关于存储的假设的一致性,由于显式使用类型环境 A 打破了所有循环引用,它具有标准的归纳解读。
以下是相关的类型规则:
P, C ⊢S S : A
P, C, A ⊢e e : t
P, C, A ⊢c ⟨e, S⟩: t
dom(A) = dom(S)
(∀l ∈dom(S)) P, C, S, A ⊢s l
P, C ⊢S S : A
(cl, tg) = A(l)
S(l) = ⟨cl, F⟩
ran(F) ⊆dom(S) ∪{null}
(∀cl′.fd ′ ∈dom(F)) t′ fd ′[F ′, fa′] ∈tg(cl ′) ⇒C ⊢A(F(cl ′.fd ′)) ≤t t′
P, C, S, A ⊢s l
图 8:配置的类型规则
定理 1 指出,如果 P, True, A ⊢c ⟨e, S⟩: t 且 ⟨e, S⟩
超级会员免费看
订阅专栏 解锁全文
1万+

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



