×

使用VerCors验证并发系统。 (英语) Zbl 1445.68131号

Bernardo,Marco(编辑)等人,可执行软件模型的形式化方法。2014年6月16日至20日,意大利贝蒂诺罗,第14所计算机、通信和软件系统正式设计方法国际学校,SFM 2014。高级讲座。柏林:斯普林格。莱克特。注释计算。科学。8483, 172-216 (2014).
摘要:本文介绍了并行软件验证的VerCors方法。它首先讨论了为什么并发软件的验证是重要的,但也是具有挑战性的。然后,它展示了在VerCors项目中,我们如何使用基于权限的分离逻辑来推理多线程Java程序。我们特别讨论了如何使用逻辑在验证中使用同步器的不同实现,以及如何在并发设置中推理类不变性属性。此外,我们还展示了该方法如何适用于推理使用不同并发范式的程序,即使用单指令多数据范式的内核程序。具体地,我们说明了基于权限的分离逻辑如何适用于验证OpenCL内核的功能正确性属性。VerCors工具集支持本文中讨论的所有验证技术。
关于整个系列,请参见[Zbl 1305.68021号].

理学硕士:

60年第68季度 规范和验证(程序逻辑、模型检查等)
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
68问题85 并发和分布式计算的模型和方法(进程代数、互模拟、转换网等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Amighi,A.,Blom,S.,Huisman,M.:使用原子的资源保护:模式和验证。技术报告TR-CTIT-13-10,CTIT,特温特大学(2013)·Zbl 1453.68042号
[2] Amighi,A.,Blom,S.,Huisman,M.,Mostowski,W.,Zaharieva-Stojanovski,M.:Java同步类的形式规范。收录于:Lafuente,A.L.,Tuosto,E.(eds.)第22届欧洲微观并行、分布式和基于网络的处理国际会议,第725-733页。IEEE计算机学会(2014)
[3] 阿普特,K.R.:霍尔逻辑的十年:一项调查——第一部分ACM翻译。程序。语言系统。 3(4), 431–483 (1981) ·Zbl 0471.68006号
[4] Artho,C.,Havelund,K.,Biere,A.:高级数据竞赛。柔和。测试。,验证。Reliab公司。 13(4), 207–227 (2003) ·Zbl 05446596号
[5] Barnett,M.、DeLine,R.、Fähndrich,M.,Leino,K.R.M.、Schulte,W.:用不变量验证面向对象程序。对象技术杂志3(6),27-56(2004)·Zbl 05431131号
[6] Barnett,M.,Leino,K.R.M.,Schulte,W.:规范#编程系统:概述。收录人:Barthe,G.、Burdy,L.、Huisman,M.、Lanet,J.-L.、Muntean,T.(编辑)CASSIS 2004。LNCS,第3362卷,第49-69页。斯普林格,海德堡(2005)
[7] Beckert,B.,Hähnle,R.,Schmitt,P.H.(编辑):面向对象软件的验证。LNCS(LNAI),第4334卷。斯普林格,海德堡(2007)
[8] Berdine,J.,Calcagno,C.,O'Hearn,P.:Smallfoot:带分离逻辑的模块化自动断言检查。收录人:de Boer,F.S.,Bonsangue,M.M.,Graf,S.,de Roever,W.-P.(编辑)FMCO 2005。LNCS,第4111卷,第115–137页。斯普林格,海德堡(2006)·Zbl 05189668号
[9] Betts,A.,Chong,N.,Donaldson,A.,Qadeer,S.,Thomson,P.:GPU验证:GPU内核的验证程序。在:ACM面向对象编程系统语言与应用国际会议论文集,OOPSLA 2012,第113–132页。ACM,纽约(2012)
[10] Blom,S.、Huisman,M.:用于验证并发程序的VerCors工具。收录人:Jones,C.,Pihlajasaari,P.,Sun,J.(编辑)FM 2014。LNCS,第8442卷,第127-131页。斯普林格,海德堡(2014)·Zbl 06400667号
[11] Blom,S.、Huisman,M.、Mihelć,M.:GPGPU程序的规范和验证。接受出现在《计算机编程科学》(2013)
[12] Boyland,J.:检查对分数权限的干扰。收录:Cousot,R.(编辑)SAS 2003。LNCS,第2694卷,第55-72页。斯普林格,海德堡(2003)·Zbl 1067.68537号
[13] Burdy,L.、Cheon,Y.、Cok,D.R.、Ernst,M.D.、Kiniry,J.R.、Leavens,G.T.、Leino,K.R.M.、Poll,E.:JML工具和应用概述。技术转让软件工具7,212–232(2005)
[14] Chalin,P.、Kiniry,J.R.、Leavens,G.T.、Poll,E.:超越断言:JML和ESC/Java2的高级规范和验证。收录人:de Boer,F.S.,Bonsangue,M.M.,Graf,S.,de Roever,W.-P.(编辑)FMCO 2005。LNCS,第4111卷,第342-363页。斯普林格,海德堡(2006)·Zbl 05189663号
[15] Cohen,E.、Dahlweid,M.、Hillebrand,M.A.、Leinenbach,D.、Moskal,M.,Santen,T.、Schulte,W.、Tobies,S.:VCC:验证并发C.的实用系统。In:Berghofer,S.、Nipkow,T.,Urban,C.、Wenzel,M.(编辑)TPHOLs 2009。LNCS,第5674卷,第23-42页。斯普林格,海德堡(2009)·Zbl 05618496号
[16] Cohen,E.,Moskal,M.,Schulte,W.,Tobies,S.:并发程序中全局不变量的局部验证。收录:Touili,T.、Cook,B.、Jackson,P.(编辑)CAV 2010。LNCS,第6174卷,第480-494页。斯普林格,海德堡(2010)·Zbl 05772655号
[17] Cok,D.R.:OpenJML:通过扩展OpenJDK实现Java 7的JML。收录人:Bobaru,M.,Havelund,K.,Holzmann,G.J.,Joshi,R.(编辑)NFM 2011。LNCS,第6617卷,第472-479页。斯普林格,海德堡(2011)·Zbl 05930549号
[18] Cowan,B.,Kapralos,B.:基于GPU的声学遮挡建模和声学纹理贴图。摘自:《第六届音频会议记录:声音互动会议》,2011年上午,第55-61页。ACM,纽约(2011)
[19] Dietl,W.,Müller,P.:Universes:JML的轻量级所有权。《对象技术杂志》4(8),5–32(2005)·Zbl 05431212号
[20] Dietl,W.,Müller,P.:程序验证中的对象所有权。发表于:Clarke,D.,Noble,J.,Wrigstad,T.(编辑)《面向对象编程中的别名》。LNCS,第7850卷,第289–318页。斯普林格,海德堡(2013)·Zbl 06326004号
[21] DiStefano,D.,Parkinson,M.:jStar:面向Java的实际验证。摘自:ACM面向对象编程系统、语言和应用会议,第213-226页。ACM(2008)
[22] Drossopoulou,S.,Francalanza,A.,Müller,P.,Summers,A.J.:对象不变量验证技术的统一框架。收录人:Vitek,J.(编辑)ECOOP 2008。LNCS,第5142卷,第412-437页。施普林格,海德堡(2008)·Zbl 05301161号
[23] Ernst,M.D.,Cockrell,J.,Griswold,W.G.,Notkin,D.:动态发现可能的程序不变量以支持程序进化。IEEE软件工程学报27(2),99–123(2001)
[24] 弗洛伊德·R.W.:为程序赋予意义。程序。交响乐团。申请。数学。 19, 19–31 (1967) ·Zbl 0189.50204号
[25] Gotsman,A.、Berdine,J.、Cook,B.、Rinetzky,N.、Sagiv,M.:可存储锁和线程的局部推理。收录:邵,Z.(编辑)APLAS 2007。LNCS,第4807卷,第19-37页。施普林格,海德堡(2007)·Zbl 1137.68354号
[26] Haack,C.,Huisman,M.,Hurlin,C.:关于Java可重入锁的推理。收录:Ramalingam,G.(编辑)APLAS 2008。LNCS,第5356卷,第171-187页。施普林格,海德堡(2008)·Zbl 05488153号
[27] Haack,C.,Huisman,M.,Hurlin,C.,Amighi,A.:Java基于许可的分离逻辑。提交给计算机科学中的逻辑方法·Zbl 1448.68215号
[28] Hoare,C.:计算机编程的公理基础。Commun公司。ACM 12(10),576–580(1969)·Zbl 0179.23105号
[29] Hobor,A.,Gherghina,C.:并发分离逻辑中的障碍。摘自:Barthe,G.(编辑)《2011年员工持股计划》。LNCS,第6602卷,第276-296页。斯普林格,海德堡(2011)·Zbl 1326.68096号
[30] Huisman,M.,Mihelć,M.:使用基于许可的分离逻辑规范和验证GPGPU程序。在:BYTECODE 2013(2013)
[31] Huizing,K.,Kuiper,R.:使用类不变量验证面向对象程序。收录:Maibaum,T.(编辑)FASE 2000。LNCS,第1783卷,第208–221页。斯普林格,海德堡(2000)
[32] Jacobs,B.,Piessens,F.,Leino,K.R.M.,Schulte,W.:具有不变量的聚合对象的安全并发。摘自:《软件工程与形式方法》,第137-147页(2005年)
[33] Jacobs,B.,Smans,J.,Philippaerts,P.,Vogels,F.,Penninckx,W.,Piessens,F.:VeriFast:一个强大、可靠、可预测的C和Java快速验证器。收录人:Bobaru,M.,Havelund,K.,Holzmann,G.J.,Joshi,R.(编辑)NFM 2011。LNCS,第6617卷,第41-55页。斯普林格,海德堡(2011)·Zbl 05930518号
[34] Jason Sanders,E.K.:CUDA示例:通用GPU编程简介。Addison-Wesley Professional(2010年)
[35] Khronos OpenCL工作组。OpenCL规范(2008-2013)
[36] Leavens,G.、Poll,E.、Clifton,C.、Cheon,Y.、Ruby,C.、Cok,D.R.、Müller,P.、Kiniry,J.、Chalin,P.:JML参考手册。爱荷华州立大学计算机科学系(2007年2月),http://www.jmlspecs.org
[37] Leino,K.,Müller,P.,Smans,J.:用Chalice验证并发程序。收录:Aldini,A.,Barthe,G.,Gorrieri,R.(编辑)FOSAD 2009。LNCS,第5705卷,第195-222页。斯普林格,海德堡(2009)
[38] 莱诺,K.R.M.:这是布吉2。技术报告,Microsoft Research(2008年6月)
[39] Leino,K.R.M.:Dafny:功能正确性的自动程序验证器。收录人:Clarke,E.M.,Voronkov,A.(编辑)LPAR-16 2010。LNCS,第6355卷,第348-370页。斯普林格,海德堡(2010)·Zbl 1253.68095号
[40] Li,G.,Gopalakrishnan,G.:基于可伸缩SMT的GPU内核函数验证。参见:SIGSOFT FSE 2010,美国新墨西哥州圣菲,第187-196页。ACM(2010)
[41] Liskov,B.,Guttag,J.:程序开发中的抽象和规范。麻省理工学院出版社,剑桥(1986)·Zbl 0644.68001号
[42] Lu,Y.,Potter,J.,Xue,J.:有效性不变量和效果。摘自:Ernst,E.(编辑)ECOOP 2007。LNCS,第4609卷,第202-226页。斯普林格,海德堡(2007)
[43] Meyer,B.:面向对象软件构造,第二版。Prentice Hall(1997)·Zbl 0987.68516号
[44] Müller,P.,Poetzsch-Heffter,A.,Leavens,G.T.:分层对象结构的模不变量。科学。计算。程序。 62(3), 253–286 (2006) ·兹比尔1100.68539
[45] Mulligan,J.B.:GPU加速软件眼睛跟踪系统。摘自:《眼动跟踪研究与应用研讨会论文集》,ETRA 2012,第265-268页。ACM,纽约(2012)
[46] O'Hearn,P.W.:资源、并发和局部推理。理论计算机科学375(1-3),271–307(2007)·Zbl 1111.68023号
[47] OpenCL 1.2规范(2011)
[48] Owicki,S.,Gries,D.:并行程序的公理证明技术。《信息学报》6,319–340(1975)·Zbl 0312.68011号
[49] Parkinson,M.:Java的局部推理。剑桥大学技术报告UCAM-CL-TR-654(2005)
[50] 帕金森,M.J.,比尔曼,G.M.:分离逻辑和抽象。收录于:Palsberg,J.,Abadi,M.(编辑)第32届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,第247-258页。ACM(2005)·Zbl 1369.68151号
[51] 帕金森,M.J.,萨默斯,A.J.:分离逻辑和隐式动态框架之间的关系。计算机科学中的逻辑方法8(3:01),1-54(2012)·Zbl 1256.03036号
[52] Parr,T.:ANTLR 4最终参考。实用书架(2013)
[53] Poetzsch-Heffter,A.:面向对象程序的规范和验证。慕尼黑技术大学博士论文,习惯化论文(1997)
[54] Reif,W.,Schellhorn,G.,Stenzel,K.,Balser,M.:结构化规范和与KIV的交互证明。摘自:Bibel,W.,Schmitt,P.(编辑)《自动扣减——应用基础》,第二卷第一期,第13-39页。Kluwer(1998)·Zbl 0970.68149号
[55] Reynolds,J.:分离逻辑:共享可变数据结构的逻辑。摘自:第17届IEEE计算机科学逻辑研讨会(LICS 2002),第55-74页。IEEE计算机学会(2002)
[56] Smans,J.,Jacobs,B.,Piessens,F.:隐式动态框架。ACM事务处理。程序。语言系统。 34(1) (2012) ·Zbl 1204.68131号
[57] Stone,S.S.、Haldar,J.P.、Tsao,S.C.、Hwu,W.-M.W.、Liang,Z.-P.、Sutton,B.P.:加速GPU上的高级MRI重建。摘自:《第五届计算机前沿会议论文集》,CF 2008,第261-272页。ACM,纽约(2008)
[58] VerCors项目主页(2014),http://www.utwente.nl/vercors/
[59] Weiß,B.:面向对象软件的演绎验证:动态框架、动态逻辑和谓词抽象。卡尔斯鲁厄理工学院博士论文(2011年)
[60] Zaharieva-Stojanovski,M.,Huisman,M.:验证并发程序中的类不变量。收录于:Gnesi,S.,Rensink,A.(编辑)FASE 2014(ETAPS)。LNCS,第8411卷,第230–245页。斯普林格,海德堡(2014)·Zbl 06400629号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。