Java异常机制的形式化:原理、实现与示例
1. 异常相关的前置理论
在Java编程中,异常处理是一个重要的部分。为了更好地理解和处理异常,我们引入了一些类型理论相关的概念。
首先是Hoare三元组的定义:
pre: OM →bool, post: OM →RefType →bool,
stat: OM →StatResult, E : ClassName ⊢
{pre} stat {exception(E, post)} : bool def
=
∀x: OM. pre · x ⇒CASES stat · x OF {
| hang 7→true
| norm y 7→true
| abnorm a 7→
CASES a OF {
| excp e 7→
CASES e.ex OF{
| null 7→true
| ref p 7→
SubClass? · (gettype · p · (e.es)) · E
∧post · (e.es) · (e.ex) }
| rtrn z 7→true
| break b 7→true
| cont c 7→true } }
这里的前置条件 pre 和后置条件 post 用于描述程序的状态, stat 表示语句的执行结果。这个三元组对于推理Java程序非常重要,例如在证明一个包含异常的 while 循环程序的后置条件时就会用到。
另外,行为接口规范语言JML也有前置和后置条件,可用于描述“正常”和“异常”行为。LOOP工具会将JML规范转换为合适的H
超级会员免费看
订阅专栏 解锁全文

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



