23、主题缩减和健全性

主题缩减和健全性

1 主题缩减定理

主题缩减定理是Java类型系统的重要组成部分,它确保了Java程序在运行时不会出现类型错误。根据主题缩减定理,任何非基础良类型的Java项要么重写为另一个良类型项,其类型可以扩展到原始项的类型,要么重写为一个异常。此外,状态与环境保持一致。

1.1 主题缩减定理的具体内容

定理指出,对于一个符合环境Γ的状态σ,一个Java程序p具有Γ se p 33,一个非基础Javar项t具有数组属性,对于p和σ,以及一个类型T具有Γ, σ r t: T,存在σ′,Γ′, t′, T′使得:

  • 〈t, σ〉;p〈t′, σ′〉,以及Γ′, σ′`r t′: T′,并且t′具有数组属性,对于p和σ′,以及:
  • T′=E-Thrn,E一个异常,σ′符合Γ, Γ′= Γ或
  • Γ` T′ ≤wdn T,Γ′符合Γ, σ′符合Γ′

此外,如果t是一个非l-基础变量,那么〈t, σ〉;p〈t′, σ′〉和t′不是基础。同样,如果t是一个非l-基础变量且不是数组访问,那么T= T′。

1.2 定理的意义

主题缩减定理不仅保证了重写保留类型,还保证了对于任何结构良好、非基础项都存在重写步骤。这意味着对于静态类型正确的表达式,永远不会出现对象无法执行消息的情况(如Smalltalk中的“对象不理解消息”)。虽然它不排除通常的运行时错误(如索引越界或错误地给数组组件赋值),但它确实保证这些错误情况将引发异常,而不是被忽视并破坏运行时环境。

2 健全性定理

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值