用于程序验证的数据流分析技术的整合

来源 :南京大学 | 被引量 : 0次 | 上传用户:luoqiuqiu80
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在交互式的程序验证中,人们希望自动化地获得一些信息来提高证明效率。数据流分析是一类典型的静态程序分析方法。将这些分析方法应用到代码验证中是一个很好的选择。但是现有数据流分析技术相对孤立,无法将其他数据流分析技术的分析结果加以重新利用。并且由于现有数据流分析技术大部分是完全自动化的分析技术,使用者不能够对分析过程进行干预,不能通过一些关键信息来引导数据流分析过程,阻碍了数据流分析技术在代码验证中发挥更大的作用。因此,为了在交互式代码验证过程中充分发挥数据流分析技术的能力,我们应该使数据流分析技术之间能够相互交流,并且允许使用者在关键点上给予人工干预。本文以发挥数据流分析方法在交互式代码验证中的分析能力作为出发点,提出了一套切实可行的方法和平台,用来整合不同的数据流分析技术。本文实现了一个分析工具原型,它将空指针解引用分析技术、整型变量取值范围分析技术、单链表可达性分析技术整合到一起,并允许使用者进行人工干预。我们通过两个案例展示了本文工作的有效性。本文主要解决了如下问题:·如何对各种不同程序性质进行描述。现有的数据流分析技术关注的程序性质各不相同,为了能够更好的实现综合分析能力,我们十分迫切的需要对程序的性质做统一的描述。本文通过对程序性质的深入分析,使用带有递归函数的逻辑公式来表示程序性质。在清晰表达程序的逻辑性质的基础上,工具还维护了各个性质之间的依赖关系,从而更方便用户的理解。·如何使不同的分析技术能够相互利用其它技术的分析结果。在实现了对程序性质的统一描述后,本文确定了以控制流图作为共享的核心数据结构,并通过引入程序点的概念将程序性质以统一的方式进行存贮。工具中还提供了对程序性质进行增删改操作的接口,各个分析技术在分析时可以提取已有程序性质,并在分析完成后回写分析得到的性质,实现了几种不同分析技术共享程序性质的目标。·如何让使用者方便的实现对分析过程的干预。在实现数据流分析工具的交互后,为了使得使用者能够更好地干预和指导数据流分析过程,本文设计了用户与工具间的一些交互功能。在数据流分析过程中,通过用户补充关键信息可以更好地发挥工具的自动化分析能力。
其他文献
随着网络规模的扩大和用户数量的急剧增加,使得互联网的流量急剧增加,给网络的带宽造成极大的压力,也加大了服务器的负担,导致服务不稳定。当前C/S架构网络将信息的传输中转
该文第二、三章简单介绍了软件度量研究及一些经验试题模型.该文第四章利用《广东省公安厅消防局计算机办公辅助系统》项目所采用的详细设计规范研究数据库系统复杂度;并探讨
该文针对焊接过程动态位移场的ESPI测量,研究了散斑干涉条纹图像的有效处理方法.该文描述基于双光束法的面内位移测量系统的数学模型,并给出了采集焊接过程中包含试件变形信
该论文主要研究生命周期工作流的相关理论与技术,包括生命周期工作流的表示与驱动、系统实现的体系结构和存储结构、系统对象的定义和实现(IDL)等.下面具体介绍各章的内容.第
随着Internet的不断发展,网站越来越多,网站的制作技术也日新月异,但目前国内人们对网站的评价往往是基于内容的,对网站的一些性能的指标,比如下载的速度或链接的有效率,并无
基于面向对象的类测试,该文提出了一种生成类的合理的有限方法序列集和选取测试数据的方法.对于方法序列的确定,该文利用统一建模语言UML的状态图来自动生成类的合理的有限的
该论文的讨论的主要目标是建立一个可通过WWW访问的,可以产生和求值SET证书的系统.文中首先概述了电子商务的发展及SET在其中的地位.接着讨论了SET系统所应具有的主要功能,SE
软件缺陷的存在给软件的安全使用带来了巨大的隐患。软件缺陷模块序列预测能够帮助软件从业人员对软件中的缺陷进行审查和检测,成为软件质量控制的有效手段。目前已有的软件
该文针对并行应用系统的开发,分别从应用程序设计和应用程序实现两个方面进行了研究.从并行计算模型、高性能语言、并行编译技术和核外计算四个方面系统地阐述了我们的解决策
软件复用技术已经成为人们解决软件危机的有效手段之一."为复用而开发以及在开发中复用"是软件复用的重思想.近年软件复用技术存在两种策略或方式:软件产品复用和软件过程复