×

更快、更完整的Java建模语言扩展静态检查。 (英语) Zbl 1185.68143号

摘要:扩展静态检查(ESC)是一种完全自动化的正式验证技术。ESC中的验证是通过将程序及其规范转换为验证条件(VC)来实现的。VC的证明证明了程序的正确性。许多看似简单的算法的实现超出了传统扩展静态检查工具的验证能力。无法验证玩具示例通常足以让用户放弃使用形式化方法的想法。ESC4是JML4项目的ESC组件,它能够验证更多种类的方法,部分原因是它使用了应用多个定理证明器的新技术。特别是,我们提出了离线用户辅助ESC,这是一种介于ESC和完全静态程序验证之间的新形式的验证。就验证工具而言,ESC通常相当高效,但它仍然比简单的编译慢几个数量级。可以想象,证明风投的计算成本很高:虽然小类可以在几秒钟内验证,但验证50 KLOC的大程序可能需要几个小时。为了帮助解决使用多个验证程序所增加的成本以及这种缺乏可扩展性的问题,我们介绍了ESC4的多线程版本及其分布式验证程序后端。

MSC公司:

68甲15 编程语言理论
60年第68季度 规范和验证(程序逻辑、模型检查等)
第68页第15页 定理证明(演绎、解析等)(MSC2010)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Flanagan,C.,Leino,K.R.M.,Lillibridge,M.,Nelson,G.,Saxe,J.B.,Stata,R.:Java的扩展静态检查。参见:PLDI’02:ACM SIGPLAN 2002年会议记录,第234–245页。ACM,纽约(2002年)。数字对象标识:http://doi.acm.org/10.1145/512529.512558
[2] Chalin,P.、James,P.R.、Karabotsos,G.:JML4:为Java打造工业级IVE,为JML打造下一代研究平台。收录:2008年VSTTE:2008年验证系统会议记录:理论、工具和实验(2008)
[3] Cok,D.R.,Kiniry,J.R.:ESC/Java2:将ESC/Java和JML结合起来。In:安全、可靠和互操作智能设备的构造和分析。LNCS,第3362/2005卷,第108–128页。柏林施普林格出版社(2005)
[4] Leavens,G.T.、Poll,E.、Clifton,C.、Cheon,Y.、Ruby,C.、Cok,D.R.、Müller,P.、Kiniry,J.R.、Chalin,P.:JML参考手册。http://www.jmlspecs.org (2008)
[5] Barnett,M.,Leino,K.R.M.,Schulte,W.:规范#编程系统:概述。收录于:Barthe,G.,Burdy,L.,Huisman,M.,Lanet,J.L.,Muntean,T.(编辑)《CASSIS 2004:安全、安全和互操作智能设备的构建和分析》,国际研讨会,法国马赛,2004年3月10日至14日,修订论文集。计算机科学课堂讲稿,第3362卷,第49-69页。施普林格,纽约(2004年)
[6] Chalin,P.、James,P.R.、Karabotsos,G.:JML的集成验证环境:架构和早期结果。摘自:SAVCBS’07:2007年基于组件的系统规范和验证研讨会会议记录,第47–53页(2007)
[7] Leino,K.R.M.:走向可靠的模块化程序。帕萨迪纳加州理工学院博士论文(1995年)
[8] Nipkow,T.、Paulson,L.C.、Wenzel,M.:Isabelle/HOL——高阶逻辑的证明助手。LNCS,第2283卷。斯普林格,纽约(2002)·兹比尔0994.68131
[9] 科尔曼,B.,巴斯比,R.C.:《计算机科学的离散数学结构》,第二版。普伦蒂斯·霍尔(Prentice-Hall),《上鞍河》(Upper Saddle River)(1986年)·Zbl 0688.68002号
[10] Chalin,P.,James,P.R.:Java中默认的非完整引用:减轻了空注释负担。摘自:《第21届欧洲面向对象编程会议论文集》(ECOOP’07)。德国柏林(2007年)
[11] James,P.R.,Chalin,P.:JML4中增强的扩展静态检查:多重保护支持的好处。In:ACM SAC 2009(第24届ACM应用计算年会)(2009)
[12] Barnett,M.,Leino,K.R.M.:非结构化程序的弱前置条件。摘自:PASTE'05:第六届ACM SIGPLAN-SIGSOFT软件工具和工程程序分析研讨会,第82-87页。ACM,纽约(2005)
[13] Flanagan,C.,Saxe,J.B.:避免指数爆炸:生成紧凑的验证条件。收录于:POPL'01:第28届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,第193-205页。ACM,纽约(2001年)。数字对象标识:http://doi.acm.org/10.1145/360204.360220 ·Zbl 1323.68372号
[14] Dijkstra,E.W.:编程学科。普伦蒂斯·霍尔(Prentice-Hall),恩格伍德悬崖(Englewood Cliffs)(1976年)·Zbl 0368.68005号
[15] 伊莎贝尔:伊莎贝尔主页。http://isabelle.in.tum.de (2008)
[16] Paulson,L.C.,Susanto,K.W.:交互式定理证明的源代码级证明重建。收录于:Schneider,K.,Brandt,J.(编辑)《高阶逻辑中的定理证明:TPHOLs 2007》。LNCS,第4732卷,第232-245页。施普林格,纽约(2007年)。doi:10.1007/978-3-540-74591-4。网址:http://www.cl.cam.ac.uk/\(\sim\)lp15/papers/Automation/reconstruction.pdf·兹比尔1144.68364
[17] 为什么:软件验证平台:为什么主页。http://why.lri.fr (2008)
[18] Metis定理证明器:Metis主页。http://www.gilith.com/software/metis/ (2008)
[19] Wenzel,M.:Isar——可读正式证明文件的通用解释方法。摘自:TPHOLs’99:第十二届高阶逻辑定理证明国际会议论文集,第167-184页。施普林格,伦敦(1999)
[20] Eclipse:Bug 142126–为Java编译器使用多个CPU。https://bugs.eclipse.org/bugs/show_bug.cgi?id=142126 (2008)
[21] Amdahl,G.M.:实现大规模计算能力的单处理器方法的有效性。摘自:AFIPS会议记录,第79-81页。加利福尼亚州旧金山(1967)
[22] Krishnaprasad,S.:使用和滥用Amdahl法律。J.计算。小型学院。17(2), 288–293 (2001)
[23] Grigore,R.,Moskal,M.:编辑和验证。摘自:第六届一阶定理证明国际研讨会论文集(FTP 2007),利物浦(2007)
[24] Leino,K.R.M.,Monahan,R.:用一阶smt解算器进行理解推理。In:ACM SAC 2009 SVT(第24届ACM应用计算年度研讨会软件验证和测试跟踪)(2009)
[25] Böhme,S.,Leino,R.,Wolff,B.:HOL-Boogie–Boogie程序验证程序的交互式证明程序。摘自:第21届高阶逻辑定理证明国际会议论文集(TPHOLs 2008)。LNCS,第5170卷。施普林格,纽约(2008)。网址:http://www-wjp.cs.uni-sb.de/publikationen/boehme_tphols_2008.pdf ·Zbl 1165.68399号
[26] Filliátre,J.C.,Hubert,T.,Marché,C.:C程序的Caduceus验证工具:教程和参考手册。http://caduceus.lri.fr (2008)
[27] Filliátre,J.C.:为什么验证工具:教程和参考手册。http://why.lri.fr (2008)
[28] Karabotsos,G.,Chalin,P.,James,P.R.,Giannas,L.:使用JML4 FSPV的递归函数的完全正确性。摘自:SAVCBS’08:2008年基于组件的系统规范和验证研讨会会议记录(2008)
[29] Wilson,T.、Maharaj,S.、Clark,R.G.:综合语言:一种干净的语言和支持工具,用于集成不同的基于断言的验证技术。摘自:REFT 2005会议记录。英国纽卡斯尔(2005)。网址:网址:http://www.cs.stir.ac.uk/\(\sim\)twi/omni/papers/reft2005.pdf
[30] Wilson,T.,Maharaj,S.,Clark,R.G.:综合验证策略:一种灵活、可配置的基于断言的软件验证方法。在:SEFM'05,第三届IEEE软件工程与形式化方法国际会议(2005)。网址:网址:http://www.cs.stir.ac.uk/\(\sim\)twi/omni/papers/sefm2005.pdf
[31] Wilson,T.:综合语言和综合验证方法。斯特林大学博士论文(2008)
[32] Wilson,T.、Maharaj,S.、Clark,R.G.:面向应用程序开发人员的按钮工具,面向组件供应商的全面正式验证。斯特林大学计算科学与数学系技术代表(2006年)
[33] Burdy,L.,Requet,A.:JACK:Java小程序正确性工具包。参加:第四届Gemplus开发者大会(2002年)
[34] Burdy,L.,Requet,A.,Lanet,J.L.:Java小程序正确性:面向开发人员的方法。In:形式方法(FME'03)。LNCS,第2805卷,第422-439页(2003年)
[35] GNUO Perating系统:并行-GNU“制造”。http://www.gnu.org/software/automake/manual/make/Parallel.html (2006)
[36] Inc.,A.:Xcode构建系统指南。http://developer.apple.com/documentation/DeveloperTools/Conceptual/XcodeBuildSystem/Xcode_Build_System.pdf . (2009)
[37] distcc:distcc:一个快速、免费的分布式C/C++编译器。distcc.org(2008)
[38] openSUSE:冰淇淋–openSUSE。http://en.opensuse.org/冰淇淋 (2006)
[39] Hickey,J.,Nogin,A.,Constable,R.L.,Aydimir,B.E.,Barzilay,E.,Bryukhov,Y.,Eaton,R.,Granicz,A.,Kopylov,A.,Kreitz,C.,Krupski,V.N.,Lorigo,L.,Schmitt,S.,Witty,C.,Yu,X.:MetaPRL–模块化逻辑环境。载:Basin,D.,Wolff,B.(编辑)《第16届高阶逻辑定理证明国际会议论文集》(TPHOLs 2003),第287–303页。施普林格,伦敦(2003)
[40] Hickey,J.:容错分布式定理证明。载于:CADE-16:第16届自动扣减国际会议记录,第227-231页。施普林格,伦敦(1999)
[41] Rodeh,O.,Birman,K.,Dolev,D.:集群群通信系统中安全协议的架构和性能:使用钻石守卫城堡。J.ACM事务。信息。系统。第4(3)节(TISSEC),289–319(2001)。数字对象标识:http://doi.acm.org/10.1145/501978.501982 ·doi:10.1145/501978.501982
[42] Vandevorde,M.T.,Kapur,D.:分布式落叶松证明程序(DLP):基于重写规则的证明程序的并行化实验。收录于:RTA'96:第七届改写技术与应用国际会议论文集,第420-423页。施普林格,伦敦(1996)
[43] Hunter,C.、Robinson,P.、Strooper,P.:基于代理的分布式软件验证。载于:ACSC'05:第二十八届澳大拉西亚计算机科学会议记录,第159–164页,达令赫斯特(2005)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。