断言语言支持自定义谓词的程序验证器原型

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:skyforce2008
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着经济社会的发展,各行各业对软件的需求和依赖程度在逐渐增强,与此同时,软件安全问题日益突出,特别是在一些安全攸关的领域中,软件的可靠性变得十分必要。提高软件可信程度的方法有很多种,如加强软件开发的管理和流程控制,提高软件开发人员的素质水平等等;在众多方法中,最严格的、最能提高软件可信度的方法是形式化程序验证,也即利用数学方法来对程序的源码进行严格的推理演算和证明。   在形式化程序验证方法中,典型的形式化程序验证器需要程序员根据断言语言书写函数前后断言(如果程序中有循环结构,还需要循环不变式),而准确地写出这些断言并不容易;不仅如此,考察现有的程序验证工具,断言语言的表达能力都一般都比较弱,这就使得很多性质或是无法利用断言语言表达出来,或是描述性质的断言十分复杂,而复杂的断言会给定理证明器增加负担,诸如此类的原因导致程序验证难以被广泛应用。   为了解决这些问题,我们设计了形状图逻辑,该逻辑可以对利用我们定义的PointerC语言编写的程序进行程序分析,分析得到的结果为后面验证条件生成和证明提供辅助;针对断言语言表达能力不足的缺陷,本文采用在断言语言中增加自定义谓词、自定义函数、性质定理等的方法来增强断言语言的表达能力。   本文的贡献主要是:   1.设计了通过在断言语言中允许自定义谓词、性质定理和自定义函数的方法来增强断言语言的表达能力。程序员可以通过自定义谓词方便地定义出基于归纳性质的断言,同时基于谓词描述程序性质的方法减少了自动定理证明器证明失败的情况,这种方法使得仍然可以利用Hoare逻辑来对指针程序中的递归的性质进行验证。   2.探索了验证指针程序中复杂性质(如递归性质)的方法,设计并实现了利用自定义谓词和性质定理来验证这些性质的系统,增强了已有验证器的功能。   本文工作的意义在于设计了在断言语言中增加自定义谓词的方法来增强断言语言表达能力的方法,并实现了该程序验证工具的原型,增加了验证涉及递归性质的程序的经验,为以后的研究和系统扩展打下了基础。
其他文献
案例推理是人工智能领域中一种重要的问题求解方法,以其独特的推理风格和成功的应用,向人们展示了很强的生命力,在国际人工智能领域引起了广泛的兴趣。案例推理可以理解为利
近年来,随着自带设备办公(BYOD)的普及,企业员工们倾向于使用个人移动设备访问公司资源。同一个设备同时用于访问企业数据和个人数据引入了新的安全威胁,例如企业机密数据的
学位
二十一世纪是信息时代,随着计算机科学技术的发展和通信技术的发展计算机网络规模日渐壮大起来,网络已走进人们的工作,生活,娱乐和学习中。但是,科学技术永远都是一面双刃剑,总会有
物联网产业的蓬勃兴起掀起了世界信息产业新的发展浪潮,而无线传感器网络作为一种多学科高度交叉、知识高度集成的新技术,存新一代网络中扮演着特别重要的角色,并成为当前的
云计算是互联网产业中用户和企业需求驱动的产物,以服务按需付费为特点,为用户提供更为高效便捷的服务。随着云计算的高速发展,云存储也因其高扩展性、高可靠性和低成本的特性受
随着现代科学技术的不断发展,越来越多的领域运用到了计算机视觉图像处理的技术。其中,视频目标跟踪是一个新兴的研究方向,它融合了多种高级的科学技术,诸如人工智能、模式识别以
BWDSP100是一款国内近期开发的高性能数字信号处理器,本文所论述的工作是以Openimpact为编译基础架构,为BWDSP100实现调试信息的生成和复数乘法操作的优化。   基于编译基础
免疫水印是近些年来在传统数字水印的框架基础上提出的算法模型,它不同于普通水印,最后得到的公布图像具有免疫性和自恢复性,并且可以对嵌入的自恢复信息进行加密处理,在版权保护
当今社会互联网技术已经得到广泛运用,这就带动了电子商务现今的高速发展,同时也导致了Internet中的资源数量以几何数级在快速增长。“信息爆炸”和“信息过载”使得人们在面对