×

使用状态和转换不变量的循环摘要。 (英语) Zbl 1291.68262号

摘要:本文提出了基于循环摘要原理的程序抽象算法,与传统的程序近似方法(如抽象解释)不同,该方法不使用迭代不动点计算,而是计算符号抽象变压器关于一组抽象域。这允许有效地利用特定于问题的抽象域进行摘要,因此,抽象模型的精度可以根据特定的验证需求进行定制。此外,我们扩展了循环摘要的概念,将关系抽象域以便能够发现转换不变量,这些不变量随后用于证明程序的终止。通过单独的决策过程调用或使用构造良好的抽象域来确保所发现的转换不变量的良好性。
我们通过实验评估几个与内存操作相关的抽象域来检测缓冲区溢出问题。此外,我们的轻量级终端分析在包括操作系统设备驱动程序在内的一系列基准测试中证明是有效的。

MSC公司:

60年第68季度 规范和验证(程序逻辑、模型检查等)
68号30 软件工程的数学方面(规范、验证、度量、需求等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] 艾肯,A。;Bugrara,S。;迪利格,I。;Dillig,T。;哈克特,B。;霍金斯,P。;Das,M.(编辑);Grossman,D.(编辑),《土星项目概述》,43-48(2007),纽约
[2] 阿什克罗夫特,E。;Manna,Z.,《将“go to”程序翻译为“while”程序》,49-61(1979),《Upper Saddle River》
[3] 巴拉班,I。;科恩,A。;普努利,A。;艾默生E(编辑);Namjoshi,K.(编辑),递归程序的分级抽象,第3855、267-281号(2006),柏林·Zbl 1176.68047号 ·doi:10.1007/11609773_18
[4] 球,T。;Rajamani,SK,SLAM工具包,第2102、260-264号(2001),柏林·Zbl 0996.68560号 ·doi:10.1007/3-540-44585-4_25
[5] Ben-Amram,上午;Lee,CS,尺寸变化终止的排序函数II,第5号(2009)·Zbl 1163.68318号
[6] Berdine,J。;Chawdhary,A。;库克,B。;Distefano,D。;O'Hearn,P.,《来自不变性分析的方差分析》,211-224(2007),纽约·Zbl 1295.68076号 ·doi:10.1145/1190216.1190249
[7] Beyer,D。;TA Henzinger;Théoduloz,G.,《懒散形状分析》,第4144期,第532-546页(2006年),柏林·doi:10.1007/11817963_48
[8] Biere A、Cimatti A、Clarke EM、Strichman O、Zhu Y(2003)有界模型检验。高级计算58:118-149
[9] 卡瓦达,R。;Cimatti,A。;Franzén,A。;Kalyanasundaram,K。;Roveri,M。;Shyamsundar,RK,通过集成BDD和SMT解算器计算谓词抽象,69-76(2007),洛斯阿拉米托斯
[10] Chaki S、Clarke EM、Groce A、Jha S、Veith H(2004)《C.IEEE Trans-Softw Eng中软件组件的模块化验证》30(6):388-402·doi:10.1109/TSE.2004.22
[11] Chawdhary,A。;库克,B。;Gulwani,S。;萨吉夫,M。;Yang,H。;Drossopoulou,S.(编辑),排名摘要,第4960号,148-162(2008),柏林·Zbl 1133.68317号 ·doi:10.1007/978-3-540-78739-6_13
[12] 克拉克,E。;格伦伯格,O。;Jha,S。;卢,Y。;维思,H。;艾默生E(编辑);Sistla,A.(编辑),反例引导的抽象精化,第1855号,第154-169页(2000年),柏林·Zbl 0974.68517号 ·doi:10.1007/10722167_15
[13] Clarke EM,Grumberg O,Peled DA(1999)模型检查。麻省理工学院出版社,剑桥
[14] EM克拉克;Kroening,D。;Lerda,F。;Jensen,K.(编辑);波德尔斯基,A.(编辑),用于检查ANSI-C程序的工具,编号2988168-176(2004),柏林·Zbl 1126.68470号 ·doi:10.1007/978-3-540-24730-2-15
[15] Clarke EM,Kroening D,Sharygina N,Yorav K(2004),使用SAT对ANSI-C程序进行谓词抽象。形式方法系统设计25(2-3):105-127·Zbl 1090.68022号 ·doi:10.1023/B:FORM.0000040025.89719.f3
[16] EM克拉克;Kroening,D。;北卡罗来纳州Sharygina。;Yorav,K.,SATABS:基于SAT的ANSI-C谓词抽象,570-574(2005),柏林·Zbl 1087.68586号 ·doi:10.1007/978-3-540-31980-1_40
[17] 库克,B。;Podelski,A。;Rybalchenko,A.,《终端抽象精炼》,第3672号,第87-101页(2005年),柏林·Zbl 1141.68365号 ·doi:10.1007/115477662_8
[18] 库克,B。;Podelski,A。;Rybalchenko,A.,《系统代码的终止证明》,415-426(2006),纽约
[19] 库克,B。;Gulwani,S。;Lev-Ami,T。;Rybalchenko,A。;Sagiv,M.,《证明有条件终止》,第5123、328-340号(2008),柏林·Zbl 1155.68431号 ·文件编号:10.1007/978-3-540-70545-1_32
[20] Cook B、Podelski A、Rybalchenko A(2009)终止总结:无回报!表格方法系统设计35(3):369-387·Zbl 1185.68412号 ·doi:10.1007/s10703-009-0087-8
[21] 库克,B。;Kroening,D。;Ruemmer,P。;Wintersteiger,CM,位向量关系的秩函数合成,第6015236-250号(2010),柏林·Zbl 1284.68172号 ·doi:10.1007/978-3642-12002-2_19
[22] 库索特,P。;库索特,R.,《抽象解释:通过构造或近似不动点对程序进行静态分析的统一格模型》,238-252(1977)
[23] 库索特,P。;Halbwachs,N.,程序变量间线性约束的自动发现,84-96(1978)
[24] Dams,D。;Gerth,R。;Grumberg,O.,自动生成排名函数的启发式方法,1-8(2000)
[25] 多尔,N。;Rodeh,M。;Sagiv,S.,CSSV:面向静态检测C中所有缓冲区溢出的现实工具,155-167(2003)
[26] D’Silva,V。;Haller,L。;Kroening,D。;Tautschnig,M.,冲突驱动学习的数值边界分析,48-63(2012),柏林·Zbl 1352.68060号
[27] 弗拉纳根,C。;KRM Leino;Oliveira,J.(编辑);Zave,P.(编辑),Houdini,ESC/Java注释助理,500-517(2001),柏林·Zbl 0977.68671号 ·doi:10.1007/3-540-45251-6_29
[28] 弗拉纳根,C。;KRM Leino;Lillibridge,M。;Nelson,G。;萨克斯,JB;Stata,R.,《Java的扩展静态检查》,234-245(2002),纽约·doi:10.1145/512529.512558
[29] Frama-C公司:网址:http://frama-c.com/
[30] 戈潘,D。;Reps,TW,Low-level library analysis and summary,第4590、68-81号(2007),柏林·doi:10.1007/978-3-540-73368-3_10
[31] 格拉芙,S。;Saidi,H.,用PVS构造抽象状态图,No.1254,72-83(1997),柏林·doi:10.1007/3-540-63166-6_10
[32] Gulavani,理学学士;Rajamani,SK,反例驱动的抽象解释精化,第3920号,474-488(2006),柏林·Zbl 1180.68116号 ·doi:10.1007/11691372_34
[33] Gulavani BS、Chakraborty S、Nori AV、Rajamani SK(2010)精炼抽象解释。Inf过程Lett 110(16):666-671·Zbl 1234.68258号 ·doi:10.1016/j.ipl.210.05.021文件
[34] Gulwani,S。;Lev-Ami,T。;Sagiv,M.,跟踪分区大小的组合框架,239-251(2009),纽约·Zbl 1315.68094号 ·数字对象标识代码:10.1145/1480881.1480912
[35] Gulwani,S。;梅赫拉,KK;Chilimbi,T.,《速度:程序计算复杂性的精确有效静态估计》,127-139(2009),纽约·Zbl 1315.68095号 ·数字对象标识代码:10.1145/1480881.1480898
[36] 海兹曼,M。;琼斯,N。;Podelski,A。;Cousot,R.(编辑);Martel,M.(编辑),《尺寸变化终止和转换不变量》,第6337、22-50号(2011年),柏林·Zbl 1306.68028号 ·doi:10.1007/978-3-642-15769-14
[37] TA Henzinger;贾拉(Jhala,R.)。;马朱姆达尔,R。;Sutre,G.,懒惰抽象,58-70(2002),纽约·Zbl 1323.68374号
[38] Hoare T(1969)计算机编程的公理基础。公共ACM 12(10):576-580。doi:10.1145/363235.363259·Zbl 0179.23105号 ·doi:10.1145/363235.363259
[39] Jackson,D。;Vaziri,M.,使用约束求解器查找错误,14-25(2000)·数字对象标识代码:10.1145/347324.383378
[40] Kroening,D。;Sharygina,N.,位向量逻辑的近似谓词图像,第3920号,242-256(2006),柏林·Zbl 1180.68175号 ·doi:10.1007/11691372-16
[41] Kroening,D。;北卡罗来纳州Sharygina。;Tsitovich,A。;Wintersteiger,CM,成分转换不变量的终止分析,第6174号(2010),爱丁堡
[42] 库克。;哈特,TE;Chechik,M。;Lie,D.,软件模型检查器的缓冲区溢出基准,389-392(2007),纽约
[43] 拉希里,斯洛伐克;球,T。;库克,B.,通过符号决策程序提取谓词,第3576号,24-38(2005),柏林·Zbl 1081.68055号 ·doi:10.1007/11513988_5
[44] 拉希里,斯洛伐克;Nieuwenhuis,R。;Oliveras,A.,《快速谓词抽象的SMT技术》,第4144、424-437号(2006),柏林·doi:10.1007/11817963_39
[45] 李,CS;琼斯,ND;Ben-Amram,AM,The size-change principle for program termination,第36期,第81-92页(2001年),纽约·Zbl 1323.68216号 ·doi:10.1145/360204.360210
[46] Leino,KRM,Dafny:功能正确性的自动程序验证器,第6355、348-370号(2010),柏林·Zbl 1253.68095号 ·数字对象标识代码:10.1007/978-3-642-17511-4-20
[47] Lev-Ami,T。;Sagiv,S.,《TVLA:实施静态分析的系统》,编号1824,280-301(2000),柏林·Zbl 0966.68580号 ·doi:10.1007/978-3-540-45099-3_15
[48] Manevich,R。;菲尔德,J。;TA Henzinger;Ramalingam,G。;Sagiv,M.,《基于实例的powerset域抽象求精》,第4444、273-292号(2006),柏林·Zbl 1149.68357号 ·doi:10.1007/978-3-540-71322-7_13
[49] Moy Y(2009)C程序的自动模块化静态安全检查。巴黎南大学博士论文。网址:网址:http://www.lri.fr/marche/moy09博士pdf·Zbl 1295.68076号
[50] Podelski,A。;Rybalchenko,A.,《过渡不变量》,32-41(2004),洛斯·阿拉米托斯
[51] 波德尔斯基,A。;Rybalchenko,A.,ARMC:软件模型检查与抽象细化的逻辑选择,245-259(2007),柏林
[52] 代表,T。;霍维茨,S。;Sagiv,M.,《通过图形可达性进行精确过程间数据流分析》,49-61(1995),纽约·数字对象标识代码:10.1145/199448.199462
[53] 代表,TW;萨吉夫,S。;Yorsh,G.,《最佳变压器的符号实现》,第2937、252-266号(2004),柏林·Zbl 1202.68255号 ·doi:10.1007/978-3-540-24622-021
[54] 斯科特·J。;Lee,LH;Chin,A。;阿伦兹,J。;Moyer,B.,设计m·coretm m3 cpu架构,94-101(1999)
[55] 谢里尔,M。;Pnueli,A.,《程序间数据流分析的两种方法》(1981年),纽约
[56] SNU实时基准测试。http://archi.snu.ac.kr/realtime/bequinchmark/
[57] 铃木,N。;Ishihata,K.,数组绑定检查器的实现,132-143(1977),纽约·doi:10.1145/512950.512963
[58] Tarjan RE(1981)解决路径问题的快速算法。美国临床医学杂志28(3):594-614。http://doi.acm.org/10.1145/322261.322273 ·Zbl 0462.68042号 ·数字对象标识代码:10.1145/322261.322273
[59] 图灵AM(1936)关于可计算数字,以及对entscheidungsproblem的应用。数学课程2(42):230-265·JFM 62.1059.03标准
[60] 图灵,AM,检查大型例行程序,剑桥
[61] Zitser,M。;李普曼,R。;Leek,T.,使用可利用的开源代码缓冲区溢出测试静态分析工具,97-106(2004),纽约
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。