面向程序验证的循环不变式自动构造技术研究

来源 :国防科学技术大学 | 被引量 : 0次 | 上传用户:zy07021023
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件验证作为保证软件正确性,提高软件可靠性的关键技术,受到了大量关注和广泛研究。循环不变式在软件验证领域发挥着不可替代的作用,它不仅是传统的归纳断言法的基石,也在目前流行的很多软件验证相关的技术中扮演着重要的角色。然而,循环不变式的自动构造技术一直是一个巨大的挑战。本文对面向程序验证的循环不变式自动构造相关理论和算法进行了系统、深入的研究,主要工作包括以下五个方面:1.提出一个多路径循环多项式等式循环不变式构造算法,并证明了算法的正确性,给出了算法的终止性条件。该算法保留了基于Gro¨bner基方法的循环不变式构造算法的高效性;采用控制流精化技术,识别循环中路径交叠的结构,从而构造与路径条件相关的循环不变式;能够构造析取形式的循环不变式。2.基于表达式的有限差分,提出一个迭代的多项式等式循环不变式构造算法,并证明了算法的正确性。该算法基于参数化模板和约束求解技术,采用迭代的方式,借助次数较低的(甚至平凡的)多项式等式不变式,逐步构造次数较高的多项式等式不变式。经典的基于约束求解的循环不变式构造算法需要求解非线性的等式约束,而我们的算法仅需要求解线性的等式约束。3.针对变量值域为有限数域的程序,提出了一种基于QBF的循环不变式构造方法。该方法采用参数化的循环不变式模板,将程序转化为约束,并使用QBF求解器对约束求解,从而得到循环不变式。该方法允许程序中包含非线性的表达式,支持复杂的算术和逻辑运算,包括乘、除、位操作和移位等,能够构造类型丰富的不变式,包括线性(或多项式)等式(或不等式)不变式,以及包含量词的不变式。采用该方法构造的循环不变式与程序的实际执行吻合。4.设计实现了一个基于QBF的循环不变式构造工具。工具以CIL作为前端,以C语言程序作为输入,可以自动地构造循环的不变式。5.设计并实现了一个C语言缓冲区溢出漏洞的有效检测工具CBOC。该工具基于符号执行,并引入基址安全表达式的概念,优化了符号执行过程。CBOC以CIL作为前端,以C程序源代码作为输入,能自动检测出程序中包含的缓冲区溢出漏洞。
其他文献
白光数字图像频域分析法的二维测量技术现已日益成熟,特别是相移法的引入,实现了全自动测量。但是该方法还没有实现三维位移与变形的测量,尤其是大变形的测量。本论文结合立
2002年11月30日,曾经接受世界上第一例人工心脏移植手术的人,罗伯特·特尔斯因为严重的出血问题不治身亡。 6月初旬早在10多年前就患有进行性心脏病的特尔斯,生命已 On Nov
幼儿区角活动,是幼儿教师一个永远探索的课题。从创造一个适合幼儿科学发展的环境,到调动幼儿积极性、主动性、学习性的开展,让幼儿在愉快的环境中去学习,就区角活动本身而言
<正>每个女孩子都渴望自己是摇曳在卖火柴的小女孩手心的最后一星幽蓝火焰;每个女孩都渴望自己是漂浮在海的女儿唇边的最后一朵洁白的泡沫。女孩是坚强的使者,勇敢的使者。她
[目的]通过对承德市公共场所中从事性交易女性人群的行为及HIV感染状况调查,了解这一人群从事性交易传播艾滋病的危险行为及感染状况,为艾滋病干预措施的制定奠定基础。[方法
由中石油济柴动力总厂承担的钻井用天然气发动机研制项目近日取得成功,目前产品运行稳定,满足钻井工况要求。该项目的成功开发填补了国内钻井用天然气发动机空白,标志着济柴动力
在诸如柔性制造系统、半导体生产线等这样的典型离散事件系统中,由于资源的分配不合理会导致死锁的产生.死锁不仅会导致生产率的下降,而且可能会造成灾难性的后果. Petri网是
与基于强度衰减的传统X光成像技术相比,X光相衬成像技术在对软组织进行成像时具有低辐射量,高可见度等优点,因而在过去十年间引起了研究者的广泛重视并得到了迅速发展。本研
随着新课程的改革,高职英语的教学对教师有了新的要求,教师需要树立新的教学理念,要使学生在学习中成为主体,真正做到“授人以鱼,不如授人以渔”的教学方式方法,进而完成新课标要求
作为一种典型的绿色生产方式,秸秆还田兼具环境污染治理与资源循环利用之效,但现实中农户响应并不积极。个体的意愿选择通常会面临着个人及家庭资本禀赋的约束,为探究农户在