×

带有抽象解释的静态合同检查。 (英语) Zbl 1308.68033号

Beckert,Bernhard(编辑)等人,面向对象软件的形式验证。国际会议,FoVeOOS 2010,法国巴黎,2010年6月28日至30日。修订了选定的论文。柏林:施普林格出版社(ISBN 978-3-642-18069-9/pbk)。计算机科学课堂讲稿6528,10-30(2011)。
摘要:我们概述了Clousot,它是我们当前用于静态检查CodeContracts的工具。CodeContracts支持编译器和独立于语言的Contracts规范(前置条件、后置条件和对象不变量)。
Clousot使用假设/保证推理隔离地检查每个方法:对于分析中的每个方法,Clousot假设其前提并断言其后置条件。对于每个被调用的方法,Clousot都声明其前提条件并假定其后置条件。Clousot还检查是否存在常见的运行时错误,例如null指针错误、缓冲区或数组溢出、除以零,以及比较中不太常见的错误,例如检查的整数溢出或浮点精度不匹配。Clousot的核心是一个抽象解释引擎,它可以推断程序事实。事实被用来反驳断言。使用抽象解释(与通常最弱的基于预条件的检查器相比)有两个主要优点:(i)检查器自动推断循环不变量,让用户只关注边界规范;(ii)检查器的行为是确定性的(抽象地模拟程序流),并且可以根据精度和成本进行调整。Clousot包含了其他技术,例如迭代域细化、面向目标的反向传播、前置和后置条件推断以及消息优先级。
关于整个系列,请参见[Zbl 1204.68003号].

理学硕士:

68N20型 编译与解释理论
60年第68季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Bagnara,R.,Hill,P.M.,Zaffanella,E.:多面体计算在硬件和软件系统分析和验证中的应用。西奥。计算。科学。 410(46) (2009) ·Zbl 1187.68311号 ·doi:10.1016/j.tcs.2009.07.033
[2] Barnett,M.,Chang,B.-Y.E.,DeLine,R.,Jacobs,B.,Leino,K.R.M.:Boogie:面向对象程序的模块化可重用验证程序。在:de Boer,F.S.,Bonsangue,M.M.,Graf,S.,de Roever,W.-P.(编辑)FMCO 2005。LNCS,第4111卷,第364-387页。斯普林格,海德堡(2006)·doi:10.1007/11804192_17
[3] Barthe,G.、Burdy,L.、Charles,J.、Grégoire,B.、Huisman,M.、Lanet,J.-L.、Pavlova,M.,Requet,A.:JACK–Java应用程序安全和行为验证工具。作者:de Boer,F.S.,Bonsangue,M.M.,Graf,S.,de Roever,W.-P.(编辑)FMCO 2006。LNCS,第4709卷,第152-174页。斯普林格,海德堡(2007)·doi:10.1007/978-3-540-74792-57
[4] Blanchet,B.,Cousot,P.,Cousot,R.,Feret,J.,Mauborgne,L.,Miné,A.,Monniaux,D.,Rival,X.:大型安全关键软件的静态分析器。输入:PLDI 2003(2003)·Zbl 1026.68514号 ·doi:10.1145/781131.781153
[5] Chen,L.,Miné,A.,Cousot,P.:一个健全的浮点多面体抽象域。在:Ramalingam,G.(编辑)APLAS 2008。LNCS,第5356卷,第3-18页。斯普林格,海德堡(2008)·doi:10.1007/978-3-540-89330-1_2
[6] Clarisó,R.,Cortadella,J.:八面体抽象领域。收录人:Giacobazzi,R.(编辑)SAS 2004。LNCS,第3148卷,第312-327页。斯普林格,海德堡(2004)·Zbl 1104.68410号 ·doi:10.1007/978-3-540-27864-1_23
[7] 库索,P.,库索,R.:比较伽罗瓦联系和扩大/缩小抽象解释方法。发表于:Bruynooghe,M.,Wirsing,M.(编辑)PLILP 1992。LNCS,第631卷,第269-295页。斯普林格,海德堡(1992)·Zbl 0776.68024号 ·doi:10.1007/3-540-55844-6_142
[8] 库索,P.,库索,R.:程序分析框架的系统设计。In:ACM POPL 1979(1979)·Zbl 1323.68356号 ·数字对象标识代码:10.1145/567752.567778
[9] 库索,P.,库索,R.:抽象解释:通过构造或近似不动点对程序进行静态分析的统一格模型。收录于:第四届POPL,第238-252页。纽约ACM出版社(1977年)
[10] Cousot,P.、Cousot,R.、Feret,J.、Mauborgne,L.、Miné,A.、Monniaux,D.、Rival,X.:ASTRÉE静态分析仪中的抽象组合。收录:Okada,M.,Satoh,I.(编辑)《亚洲2006》。LNCS,第4435卷,第272–300页。斯普林格,海德堡(2008)·doi:10.1007/978-3-540-77505-8_23
[11] 库索,P.,库索,R.,Logozzo,F.:从集合的间歇断言推断合同前提。致:VMCAI 2011(2011)·Zbl 1317.68030号 ·doi:10.1007/978-3642-18275-4_12
[12] 库索,P.,库索,R.,Logozzo,F.:用于全自动和可扩展数组内容分析的参数分割函子。摘自:第38届ACM程序设计语言原理研讨会(POPL 2011)。ACM出版社,纽约(2011年1月)·Zbl 1284.68210号
[13] Cousot,P.,Halbwachs,N.:程序变量之间线性约束的自动发现。在:ACM POPL 1978(1978)·doi:10.1145/512760.512770
[14] Distefano,D.,Matthew,J.,Parkinson,J.:jStar:面向Java的实际验证。摘自:OOPSLA 2008:第23届ACM SIGPLAN面向对象编程系统语言和应用会议记录,第213-226页。ACM,纽约(2008)
[15] 欧洲货币管理局。标准ECMA-355,公共语言基础设施(2006年6月)
[16] Fähndrich,M.,Barnett,M.,Logozzo,F.:代码合同(2009年3月)
[17] Fähndrich,M.、Barnett,M.和Logozzo,F.:嵌入式合同语言。In:ACM SAC 2010(2010)·doi:10.1145/1774088.1774531
[18] Ferrara,P.,Logozzo,F.,Fähndrich,M.:.NET中更安全、更不安全的代码。收录于:OOPSLA 2008。纽约ACM出版社(2008)
[19] Filliátre,J.-C.,Marché,C.:演绎程序验证的Why/Krakatoa/Caduceus平台。摘自:Damm,W.,Hermanns,H.(编辑)CAV 2007。LNCS,第4590卷,第173-177页。斯普林格,海德堡(2007)·doi:10.1007/978-3-540-73368-3_21
[20] Flanagan,C.,Leino,K.R.M.,Lillibridge,M.,Nelson,G.,Saxe,J.B.,Stata,R.:java的扩展静态检查。输入:PLDI 2002(2002)·doi:10.1145/512529.512558
[21] Gopan,D.,Reps,T.W.,Sagiv,S.:数组操作的数值分析框架。收录于:第32届POPL,第338-350页。ACM出版社,纽约(2005)·Zbl 1369.68138号
[22] Gulwani,S.,McCloskey,B.,Tiwari,A.:将抽象解释器提升到量化的逻辑域。收录于:第35届POPL,第235-246页。纽约ACM出版社(2008)·Zbl 1295.68085号
[23] Jacobs,B.,Smans,J.,Piessens,F.:veriFast程序验证器的快速浏览。收录:Ueda,K.(编辑)APLAS 2010。LNCS,第6461卷,第304–311页。斯普林格,海德堡(2010)·doi:10.1007/978-3642-17164-221
[24] Jeannet,B.,Miné,A.:Apron:用于静态分析的数值抽象域库。收录:Bouajjani,A.,Maler,O.(编辑)CAV 2009。LNCS,第5643卷,第661-667页。斯普林格,海德堡(2009)·doi:10.1007/978-3-642-02658-4_52
[25] Jhala,R.,McMillan,K.L.:从证明中提取数组。摘自:Damm,W.,Hermanns,H.(编辑)CAV 2007。LNCS,第4590卷,第193-206页。斯普林格,海德堡(2007)·Zbl 1135.68474号 ·doi:10.1007/978-3-540-73368-3_23
[26] Karr,M.:程序变量之间的仿射关系。《信息学报》第6期(1976年)·兹比尔0358.68025
[27] Khachiyan,L.,Boros,E.,Bory,E.,Elbassioni,K.M.,Gurvich,V.:生成多面体的所有顶点是很困难的。离散与计算几何39(1-3),174–190(2008)·Zbl 1147.05040号 ·doi:10.1007/s00454-008-9050-5
[28] Laviron,V.,Logozzo,F.:精炼基于抽象解释的静态分析和提示。收录人:Hu,Z.(编辑)APLAS 2009。LNCS,第5904卷,第343–358页。斯普林格,海德堡(2009)·文件编号:10.1007/978-3-642-10672-9_24
[29] Laviron,V.,Logozzo,F.:次多面体:推断线性不等式的(更多)可缩放方法。摘自:Jones,N.D.,Müller-Olm,M.(编辑)VMCAI 2009。LNCS,第5403卷,第229–244页。斯普林格,海德堡(2009)·Zbl 1206.68092号 ·doi:10.1007/978-3-540-93900-9_20
[30] Logozzo,F.:面向对象语言的模块化静态分析。信息博士,埃科尔理工学院(2004)
[31] Logozzo,F.,Fähndrich,M.:字节码分析与源代码分析的相对完整性。摘自:Hendren,L.(编辑)CC 2008。LNCS,第4959卷,第197-212页。斯普林格,海德堡(2008)·doi:10.1007/978-3-540-78791-4_14
[32] F.Logozzo和M.Fähndrich。五边形:用于有效验证数组访问的弱关系抽象域。In:ACM SAC 2008(2008)·兹比尔1197.68035 ·数字对象标识代码:10.1145/1363686.1363736
[33] Miné,A.:几个基于图形的关系数字抽象域。收录人:Hermenegildo,M.V.,Puebla,G.(编辑)SAS 2002。LNCS,第2477卷,第117页。施普林格,海德堡(2002)·Zbl 1015.68040号 ·doi:10.1007/3-540-45789-5_11
[34] Miné,A.:浮点运行时错误检测的关系抽象域。摘自:Schmidt,D.(编辑)《2004年员工持股计划》。LNCS,第2986卷,第3-17页。斯普林格,海德堡(2004)·Zbl 1126.68353号 ·doi:10.1007/978-3-540-24725-8_2
[35] Miné,A.:八角形抽象域。高阶和符号计算19,31–100(2006)·Zbl 1105.68069号 ·doi:10.1007/s10990-006-8609-1
[36] Miné,A.:提高数值抽象域精度的符号方法。In:Emerson,E.A.,Namjoshi,K.S.(编辑)VMCAI 2006。LNCS,第3855卷,第348-363页。施普林格,海德堡(2005)·Zbl 1176.68050号 ·数字对象标识代码:10.1007/11609773_23
[37] Rival,X.,Mauborgne,L.:跟踪分区抽象域。ACM事务处理。程序。语言系统。 29(5) (2007) ·doi:10.1145/1275497.1275501
[38] Sankaranarayanan,S.,Ivančić,F.,Gupta,A.:使用符号范围的程序分析。收录:Riis Nielson,H.,Filé,G.(编辑)SAS 2007。LNCS,第4634卷,第366–383页。斯普林格,海德堡(2007)·Zbl 1211.68101号 ·doi:10.1007/978-3-540-74061-223
[39] Simon,A.、King,A.、Howe,J.M.:每个线性不等式都有两个变量作为抽象域。收录:Leuschel,M.(编辑)LOPSTR 2002。LNCS,第2664卷。斯普林格,海德堡(2003)·兹比尔1278.68072 ·doi:10.1007/3-540-45013-07
[40] Smans,J.,Jacobs,B.,Piessens,F.:VeriCool:并发面向对象语言的自动验证程序。收录:Barthe,G.,de Boer,F.S.(编辑)FMOODS 2008。LNCS,第5051卷,第220-239页。斯普林格,海德堡(2008)·电话:10.1007/978-3-540-68863-1_14
[41] Tillmann,N.,de Halleux,J.:Pex–白盒测试生成。净利润。摘自:Beckert,B.,Hähnle,R.(编辑)TAP 2008。LNCS,第4966卷,第134-153页。斯普林格,海德堡(2008)·doi:10.1007/978-3-540-79124-9_10
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。