基于CEGAR的C程序模型检测研究

来源 :西安电子科技大学 | 被引量 : 0次 | 上传用户:sfol001
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件已经成为当今社会发展中不可或缺的元素,在航空航天、医疗、交通等关键领域已经得到成功的运用。随着软件的重要性日益凸显,软件的可靠性和安全性自然而然地受到重视。长期以来,研究人员一直着眼于如何发现软件中隐藏的错误,保障软件的可靠性和安全性。模型检测是应用广泛且十分有效的方法之一。它通过对程序建模,形式化地描述性质,然后自动化地验证程序是否满足期望的性质。但是,状态空间爆炸问题是模型检测面临的一个关键问题,严重影响了模型检测方法的验证能力,降低了其对大规模程序的验证效果。因此,如何提高模型检测方法的验证效率和验证规模,使得其能更好地应用于大规模的程序验证,已经成为程序验证领域的研究热点。反例制导的抽象细化(Counterexample-guided Abstraction Refinement,CEGAR)技术能有效地缩减模型检测的状态空间,提高模型检测的效率,对大规模程序也有很好的应用性。本文重点围绕基于CEGAR的抽象模型检测方法,研究和讨论如何缓解状态空间爆炸问题,以及如何自动化地对程序的性质进行验证。本文的主要贡献和研究内容如下:第一,基于CEGAR的模型检测方法已经成功地应用于大规模的程序验证,借助于Craig插值能有效地构造抽象谓词。为了进一步系统地缩减在安全性验证过程中产生的状态空间,本文提出了两种新的Craig插值应用:安全插值和错误插值。当某一个位置的安全插值被当前路径蕴含时,说明所有从当前位置出发的路径都是安全的。同样地,当某一个位置的错误插值被当前路径蕴含时,说明从当前位置出发的路径中存在一条不安全的路径,即可以到达目标状态。同时,本文提出了两种优化策略,保障新的插值能得到更好的应用。本文主要讨论了如何计算和应用这两种插值对程序的安全性进行验证,实现了新的算法,并开发了模型检测工具INTERPCHECKER。最后,通过大量的实验表明,新的插值和优化策略能有效地提高软件模型检测的验证规模。第二,为了对C程序中的安全性质和时序性质都能进行自动化地验证,本文研究了针对安全性质的分析方法,将其扩展到对时序性质的验证。首先,针对C程序空指针解引用问题,采用线性时序逻辑(Linear Temporal Logic,LTL)对其进行描述,然后将控制流图(Control Flow Graph,CFG)和LTL公式相结合,验证程序是否存在空指针解应用问题。紧接着,扩展该方法,将LTL扩展到有穷模型,给出了一种能有效地将LTL转化为确定化有穷自动机(Deterministic Finite Automata,DFA)的算法;并将该算法和基于CEGAR的模型检测方法相结合,对一般的C程序时序性质进行验证。最终,本文实现了新的算法,并开发了支持C程序时序性质验证的模型检测器TPCHECKER。通过实验,说明了新方法在非安全性质的验证方面具有很好的优势,且对于安全性质的验证,比传统插桩的方法更有效。第三,模型检测方法主要是用于发现程序的错误。一个所期望的性质,可以被形式化地表示为时序逻辑公式,也可以通过插桩的形式来检测。当一条路径违背被定义的性质时,它被称为反例路径。如何在模型检测中快速地发现一条反例路径是一个非常有意义的研究课题。反例路径检测的主要挑战是程序中的循环。与循环相关的计算和数据可能会造成状态空间急剧增长。这意味着当遇到深度循环时,大多数的工具将耗尽内存或返回不精确的结果。为了进一步地提高模型检测的效率,缩减状态空间,本文提出了一种既能快速生成反例又能保持较高精度的动静结合方法。首先将循环根据规则分为简单循环和复杂循环。对于简单循环,生成其循环摘要,避免展开循环。对于复杂循环,采用动态执行的方法,加快寻找反例路径的速度。为了在实践中评估其性能,本文实现了所提出的方法并开发了工具HYVER。通过在大量基准测试程序上的实验表明,新的方法在加速反例检测方面是非常有用的。
其他文献
文章旨在研究中草药渣对陶寒杂一代羊肉营养品质的影响。试验分为2组,每组10只。日粮中添加中药材渣的一组为混合药渣组,不添加中草药渣的一组为对照组。结果表明:混合药渣处理
随着工厂规模、数量,化工产品功能、种类的日益增加,化工生产在控制上,也逐渐由简单的手动控制变为复杂的自动化控制。自动化控制系统能够提高工厂生产效率,改善工作条件,提
<正> 联立方程模型是经济计量学中最重要的模型之一。所谓完备联立方程模型是指模型中内生变量的个数等于模型中方程的个数。完备联立方程模型的识别问题是经济计量学的基本
民事审判方式改革的价值目标及其实现涂文忠80年代后期,我国法院系统开始着手民事审判方式的改革,主要内容包括强化当事人举证责任,重视公开审判,对合议庭和审判委员会的职权重新认
牛出血性败血病由巴氏杆菌引起,以败血症和组织器官的出血性炎症为特征。近些年,此病一定程度上有所控制。而零星的发病病例,与日常管理不善大有相关。文章分析诱因,阐述典型
目的:探讨缩宫素联合米非司酮对不全流产患者血hCG及月经复潮的影响。方法:选取2016年1月-2017年1月笔者所在医院计划生育门诊收治的60例早孕人工流产后不全流产患者作为研究
建立我国高原病命名及分型的综合评论青海省高原医学科学研究所吴天一虽然经历了长期在世界不同高山和高原地区对各型高原(山)病的观察和研究,但迄今对高原病的命名和分型国际上
目的探讨带状疱疹的临床特征,旨在早期诊断,减少并发症。方法对2例临床表现典型的带状疱疹进行回顾性分析,并复习相关文献。结果本组均具有神经痛伴相关神经支配区域疱疹,但
我国是一个有着18000公里海岸线、众多岛屿和广大海洋国土的国家, 为了维护祖国的统一和领土完整,两栖作战理应受到高度重视,因此,虽然登陆舰在我国海军装备序列中并不引人注