17、堆操作程序的验证资源保证

堆操作程序的验证资源保证

1 引言

在软件开发中,正式证明软件的正确性对于许多应用(如安全关键系统)至关重要。通常有两种方法来保证软件的正确性:一是对系统的正确性进行全面验证;二是对每次执行的结果进行验证。对于静态分析工具而言,第一种方法由于分析算法的复杂性和不断演变而极具挑战性。因此,我们采用第二种方法,构建一个验证工具,在每次分析运行后,自动确认结果的正确性,并可选择生成正确性证明,这些证明还能转换为可独立检查的证书。

资源使用分析旨在根据程序的输入参数,对程序运行所需的资源(如时间、内存等)进行近似估计。 costa 是一个成本分析器,它允许用户选择特定资源,并从 Java 字节码程序中自动生成资源使用上限。虽然 costa 所实现技术的正确性在理论上已得到证明,但该工具本身并未经过正式验证,因此无法保证其实现的正确性。

在之前的工作中,我们提出了一种使用 KeY (一种用于 Java 程序的先进定理证明器)来验证 costa 推断的上限是否正确的全自动流程。当资源保证仅依赖于整数类型的数据时, costa KeY 的合作能够形成一个全自动工具来生成验证后的资源保证。然而,在实际程序中,资源保证往往依赖于动态分配数据的结构属性,例如遍历列表的循环的资源消耗通常是列表长度的函数。因此,资源分析需要跟踪数据结构大小在执行过程中的变化。

本文的主要贡献在于将之前的工作扩展到处理堆操作程序,具体包括:
1. 确定 costa 推断的需要验证的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值