×

使用可靠保证方法验证并发垃圾收集器。 (英语) Zbl 1468.68068号

摘要:并发垃圾收集算法对程序验证来说是一个挑战。在本文中,我们通过提出基于可靠保证证明技术的机械化证明方法来解决这个问题。我们设计了一个具有强类型保证、专门支持抽象并发数据结构和运行时内部高级迭代器的编译器中间表示。此外,我们定义了一个依赖保证程序逻辑,支持增量证明方法,其中注释和不变量可以逐步丰富。我们形式化了中间表示、证明系统,并证明了该方法在Coq证明助手中的正确性。有了这个,我们证明了一个完全并发的垃圾收集器,其中的赋值函数永远不必等待收集器。

MSC公司:

68N20型 编译与解释理论
68号30 软件工程的数学方面(规范、验证、度量、需求等)
第68季度第60季度 规范和验证(程序逻辑、模型检查等)
68伏15 定理证明(自动和交互式定理证明、演绎、解析等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部 哈尔

参考文献:

[1] Brookes,S.:并发分离逻辑的语义。西奥。计算。科学。375(1-3), 227-270 (2007) ·Zbl 1111.68021号 ·doi:10.1016/j.tcs2006.12.034
[2] Davis,J.,Myreen,M.O.:反射式Milawa定理证明程序是可靠的(直到运行它的机器代码)。J.汽车。原因。55(2), 117-183 (2015) ·Zbl 1356.68186号 ·doi:10.1007/s10817-015-9324-6
[3] De Moura,L.,Björner,N.:Z3:高效SMT求解器。摘自:《软件理论与实践学报》(TACAS)(2008年)
[4] Demange,D.,Laporte,V.,Zhao,L.,Jagannathan,S.,Pichardie,D.,Vitek,J.:B计划:Java的缓冲内存模型。参加:程序设计语言原理研讨会(2013年)·Zbl 1301.68098号
[5] Dijkstra,E.W.,Lamport,L.,Martin,A.J.,Scholten,C.S.,Steffens,E.F.M.:现场垃圾收集:合作实践。Commun公司。ACM 21(11),966-975(1978)·Zbl 0386.68024号 ·doi:10.1145/359642.359655
[6] Doligez,D.,Gonthier,G.:用于多处理器系统的便携式、非侵入式垃圾收集。参加:程序设计语言原理研讨会(1994年)
[7] Doligez,D.,Leroy,X.:ML多线程实现的并发分代垃圾收集器。In:编程语言原理研讨会(1993)
[8] Domani,T.、Kolodner,E.K.、Lewis,E.、Salant,E.E.、Barabash,K.、Lahan,I.、Levanoni,Y.、Petrank,E.、Yanover,I.:为Java实现空中垃圾收集器。In:内存管理国际研讨会(2000年)
[9] Elmas,T.,Qadeer,S.,Tasiran,S.:原子作用的微积分。参加:程序设计语言原理研讨会(2009年)·Zbl 1315.68087号
[10] Gammie,P.、Hosking,A.L.、Engelhardt,K.:安全放松:验证x86-TSO的空中垃圾收集。In:编程语言设计与实现(PLDI)(2015)
[11] Gonthier,G.:验证实用并发垃圾收集器的安全性。在:国际计算机辅助验证会议(CAV)(1996年)
[12] Havelund,K.:垃圾收集器的机械验证。In:国际并行处理研讨会和并行与分布式处理研讨会(IPPS/SDPP)(1999)
[13] Hawblitzel,C.,Howell,J.,Lorch,J.R.,Narayan,A.,Parno,B.,Zhang,D.,Zill,B.:铁甲应用:通过自动全系统验证实现端到端安全。In:操作系统设计与实现会议(OSDI)(2014年)
[14] Hawblitzel,C.,Petrank,E.:实际垃圾收集器的自动验证。参加:程序设计语言原理研讨会(2009年)·Zbl 1315.68096号
[15] Hawblitzel,C.,Petrank,E.,Qadeer,S.,Tasiran,S.:并行程序的自动化和模块化精化推理。参加:计算机辅助验证国际会议(2015)
[16] Herlihy,M.,Wing,J.M.:线性化:并发对象的正确性条件。事务处理。程序。语言系统。(托普拉斯)12(3),463-492(1990)·数字对象标识代码:10.1145/78969.78972
[17] Jagannathan,S.、Laporte,V.、Petri,G.、Pichardie,D.、Vitek,J.:验证编译的原子性改进。事务处理。程序。语言系统。(TOPLAS)36(2),6(2014)
[18] Jones,C.B.:干扰程序开发方法的初步步骤。事务处理。程序。语言系统。(托普拉斯)5(4),596-619(1983)·Zbl 0517.68032号 ·数字对象标识代码:10.1145/69575.69577
[19] Jones,R.、Hosking,A.、Moss,E.:垃圾收集手册。查普曼和霍尔,伦敦(2011年)·doi:10.1201/9781315388021
[20] 莱诺·R:这是《摇摆舞2》(2008)。https://www.microsoft.com/en-us/research/publication/tis-is-boogie-2-2/
[21] Liang,H.,Feng,X.,Fu,M.:用于验证并发程序转换的基于可靠保证的模拟。参加:程序设计语言原理研讨会(2012年)·Zbl 1321.68201号
[22] Liang,H.,Feng,X.,Fu,M.:基于可靠保证的模拟,用于并发程序转换的组合验证。事务处理。程序。语言系统。(托普拉斯)36(1),3(2014)
[23] McCreight,A.,Chevalier,T.,Tolmach,A.:编译和执行垃圾收集语言的认证框架。In:函数式编程国际会议(ICFP)(2010年)·Zbl 1323.68136号
[24] McCreight,A.、Shao,Z.、Lin,C.、Li,L.:验证垃圾收集器及其变异器的通用框架。In:编程语言设计与实现(PLDI)(2007)
[25] Michael,M.M.,Scott,M.L.:简单、快速、实用的非阻塞和阻塞并发队列算法。In:分布式计算原理研讨会(1996)
[26] Myreen,M.O.:复制收集器的可重用验证。参加:验证软件会议:理论、工具和实验(VSTTE)(2010年)
[27] O'Hearn,P.W.:分离逻辑和并发资源管理。在:国际记忆管理研讨会(ISMM)(2007)
[28] Owicki,S.,Gries,D.:并行程序的公理证明技术I.Acta Inform。6(4), 319-340 (1976) ·Zbl 0312.68011号 ·doi:10.1007/BF00268134
[29] Pavlovic,D.,Pepper,P.,Smith,D.R.:并发垃圾收集器的形式推导。In:国际程序构造数学会议(MPC)(2010)·兹比尔1286.68090
[30] Pfenning,F.,Elliott,C.:高阶抽象语法。In:编程语言设计与实现(PLDI)(1988)
[31] Pizlo,F.、Ziarek,L.、Maj,P.、Hosking,A.L.、Blanton,E.、Vitek,J.:分裂:碎片容忍实时垃圾收集。In:编程语言设计与实现(PLDI)(2010)
[32] Prensa Nieto,L.:Isabelle/HOL中的可靠保证方法。In:欧洲规划会议(ESOP)(2003年)·兹比尔1032.68130
[33] Reynolds,J.C.:分离逻辑:共享可变数据结构的逻辑。参加:计算机科学中的逻辑专题讨论会(2002年)
[34] 桑德伯格•爱立信(Sandberg Ericsson,A.)。;密苏里州米林;奥曼·波霍拉,J。;Ayala-Rincón,M.(编辑);Muñoz,C.(编辑),CakeML经验证的世代垃圾收集器,444-461(2017),Cham·Zbl 1468.68065号 ·doi:10.1007/978-3-319-66107-028
[35] Sergey,I.,Nanevski,A.,Banerjee,A.:细粒度并发程序的机械化验证。In:编程语言设计与实现(PLDI)(2015)
[36] Ševčík,J.,Vafeiadis,V.,Nardelli,F.Z.,Jagannathan,S.,Sewell,P.:CompcertTSO:一个用于松弛内存并发的验证编译器。J.ACM 60(3),22(2013)·Zbl 1281.68072号
[37] Torp-Smith,N.,Birkedal,L.,Reynolds,J.C.:关于复制垃圾收集器的局部推理。事务处理。程序。语言系统。(托普拉斯)30(4),24(2008)·Zbl 1325.68041号
[38] Treiber,R.K.:《系统编程:应对并行性》。技术报告,IBM Almaden Research Center(1986)
[39] Vafeiadis,V.:并发分离逻辑和操作语义。电子。注释Theor。计算。科学。276, 335-351 (2011) ·Zbl 1342.68104号 ·doi:10.1016/j.entcs.2011.09.029
[40] Vafeiadis,V.,Parkinson,M.J.:依赖/保证和分离逻辑的结合。In:并发理论国际会议(CONCUR)(2007)·Zbl 1151.68556号
[41] Yang,J.,Hawblitzel,C.:安全到最后一条指令:类型安全操作系统的自动验证。In:编程语言设计与实现(PLDI)(2010)
[42] Zakowski,Y.、Cachera,D.、Demange,D.、Petri,G.、Pichardie,D.、Jagannathan,S.、Vitek,J.:使用相对保证方法学伙伴网站验证并发垃圾收集器(2017)。http://www.irisa.fr/celtique/ext/cgc/。2018年10月31日访问·Zbl 1468.68067号
[43] Zakowski,Y.、Cachera,D.、Demange,D.、Pichardie,D.:可线性化数据结构的编译——用于语义细化的机械化RG逻辑。In:应用计算研讨会(2018)
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。