14、递归While程序的摘要分析

递归While程序的摘要分析与验证

递归While程序的摘要分析

1. 递归程序的抽象表示

在处理递归的While程序时,我们需要一套抽象的表示方法。假设存在一个任意但固定的程序P,它具有以下结构:
- 模块结构 :程序P由一组模块 ${M_0, \cdots, M_m}$ 组成。每个模块 $M_j$ 有其对应的位置集合 $Loc_j$,并且有两个特殊位置:入口位置 $entry_j$ 和出口位置 $exit_j$。
- 命令和调用
- 模块中的每个命令是一个三元组 $(\ell_1, c, \ell_2)$,其中 $\ell_1$ 和 $\ell_2$ 是模块的位置(执行前后的位置),$c$ 是转换约束,它是关于带撇和不带撇程序变量的公式。
- 每个模块调用是一个三元组 $(\ell_1, k, \ell_2)$,其中 $\ell_1$ 是调用位置,$\ell_2$ 是返回位置,$k$ 是被调用模块的索引($k \in {0, \cdots, m}$)。
- 变量和状态
- 程序变量集合为 $Var$,通常在无界数据域上取值,$Var’$ 包含程序变量的带撇版本。
- 辅助变量程序计数器 $pc$,其取值范围是所有模块位置的有限集合 $Loc$($Loc = Loc_0 \cup \cdots \cup Loc_m$)。
- 程序估值(状态)$s$ 是对程序变量和程序计数器的赋值,即 $s$ 是从 $Var \cup {pc}$ 到数据域并集的映射,所有程序估值的集合记为 $\Sigma$。
- 配置 :配

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值