×

综合精确且有用的交换条件。 (英语) Zbl 1468.68079号

摘要:数据结构操作之间交换性的推理是许多应用中的一个重要问题。在顺序设置中,可交换性可用于推理重构、编译器转换的正确性,并识别非确定性实例。在并行上下文中,交换性可以追溯到数据库[W.E.Weihl公司,IEEE传输。计算。37,第12期,1488–1505(1988年;Zbl 0674.68016号)]和编译器[M.C.里纳德P.C.迪尼兹,“交换性分析:一种用于并行化编译器的新分析技术”,ACM Trans。程序。语言系统。第19卷,第6期,942–991页(1997年;doi:10.1145/267959.26969)]社区,最近出现了乐观的平行化[M.Herlihy先生E.科斯基宁,“事务增强:高度并发事务对象的方法论”,载于:第13届ACM SIGPLAN并行编程原理与实践研讨会论文集。2008年PPoPP。纽约州纽约市:计算机协会(ACM)。207–216 (2008)],动态并发[O.跳闸等,“贾纳斯:通过后见之明利用并行性”,载于:第33届ACM SIGPLAN编程语言设计与实现会议论文集。PLDI’12。纽约州纽约市:计算机协会(ACM)。145–156 (2012);D.迪米特洛夫等,“交换性竞争检测”,载于:第35届ACM SIGPLAN编程语言设计与实现会议论文集。PLDI’14。纽约州纽约市:计算机协会(ACM)。305–315 (2014;doi:10.1145/2594291.2594322)],可扩展系统[A.T.克莱门茨等,“可伸缩交换性规则:为多核处理器设计可伸缩软件”,ACM Trans。计算。系统。32,第4号,第10号论文(2015;doi:10.1145/2699681)]甚至智能合约[T.迪克森等,《分布计算》。33,第3-4号,209-225(2020年;Zbl 1445.68083号)]。已经有关于自动生成交换条件的研究成果,但我们还不知道有任何完全自动化的技术来生成既合理又有效的条件。我们设计了这样一种技术,它由一个算法驱动,该算法迭代地将一对方法的交换性(和非交换性)条件的保守近似精炼为一个越来越精确的版本。如果考虑了整个状态空间,则该算法终止,并且可以随时中止以获得部分但良好的交换条件。我们已经将我们的工作推广到左边/右边[R.J.利普顿、Commun。ACM 18、717–721(1975年;兹伯利0316.68015)]并证明了相对完整性。我们描述了导致有用的交换性条件,包括在求精期间如何选择谓词,以及影响条件输出形状的启发式。我们已经在一个原型开源工具Servois中实现了我们的技术。我们的算法生成无量词查询,并将其发送到后端SMT解算器。我们首先通过综合一系列数据结构(包括Set、HashTable、Accumulator、Counter和Stack)的交换条件来评估Servois。然后,我们展示了我们工作的几个应用,包括关于内存和锁的推理、发现以太坊智能合约中的漏洞、改进事务内存性能、分布式应用、代码重构、验证和合成。

MSC公司:

68第05页 数据结构
68伏15 定理证明(自动和交互式定理证明、演绎、解析等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] M.阿巴迪。;Lamport,L.,精化映射的存在性,Theor。计算。科学。,82, 253-284 (1991) ·Zbl 0728.68083号 ·doi:10.1016/0304-3975(91)90224-P
[2] Aleen,F.,Clark,N.:软件并行化的交换性分析:让程序转换看到全局。摘自:第14届国际编程语言和操作系统体系结构支持会议记录(ASPLOS-XII),第241-252页。ACM(2009)
[3] Bansal,K.,Koskinen,E.,Tripp,O.:精确且有用的交换条件的自动生成。In:系统构建和分析的工具和算法——第24届国际会议,TACAS 2018,作为欧洲软件理论和实践联合会议的一部分举行,ETAPS 2018,希腊,2018年4月,会议记录,第二部分(2017)·Zbl 1423.68115号
[4] Bansal,K.,Reynolds,A.,Barrett,C.,Tinelli,C.:SMT中有限集和基数约束的新决策程序。参见:《第八届国际自动推理联合会议记录》,第9706卷,第82-98页。斯普林格(2016)·Zbl 1475.68430号
[5] Bansal,K.:具有基数和局部理论扩展的有限集的决策过程。纽约大学博士论文(2016年1月)
[6] Barnett,M.,Leino,K.R.M.,Schulte,W.:规范#编程系统:概述。载:《2004年安全、可靠和可互操作智能设备的构建和分析国际会议论文集》,CASSIS’04,第49-69页(2005)
[7] Barrett,C.、Conway,C.L.、Deters,M.、Hadarean,L.、Jovanović,D.、King,T.、Reynolds,A.、Tinelli,C.:CVC4。收录于:Gopalakrishnan,G.,Qadeer,S.(编辑),《第23届计算机辅助验证国际会议记录》(CAV’11),第6806卷,第171-177页。施普林格(2011年7月)
[8] Chechik,M.,Stavropoulou,I.,Disenfeld,C.,Rubin,J.:FPH:基于特征的系统的有效非交换性分析。摘自:《软件工程的基本方法》,第21届国际会议,2018年FASE,作为欧洲软件理论与实践联合会议的一部分,ETAPS 2018,塞萨洛尼基,希腊,2018年4月14日至20日,会议记录,第319-336页(2018)
[9] 克莱门茨,AT;Kaashoek,MF;泽尔多维奇,N。;RT莫里斯;Kohler,E.,《可伸缩交换性规则:为多核处理器设计可伸缩软件》,ACM Trans。计算。系统。,32, 4, 10 (2015) ·doi:10.1145/2699681
[10] Cook,B.,Koskinen,E.:用决策谓词进行预言。摘自:第38届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,2011年POPL,美国德克萨斯州奥斯汀,2011年1月26-28日,第399-410页(2011)·Zbl 1284.68389号
[11] Dickerson,T.、Gazzillo,P.、Herlihy,M.、Koskinen,E.:为智能合约添加并发性。摘自:《ACM分布式计算原理研讨会论文集》,PODC’17,美国纽约州纽约市,第303-312页(2017年)。ACM公司·Zbl 1445.68083号
[12] Dimitrov,D.、Raychev,V.、Vechev,M.T.、Koskinen,E.:交换性竞争检测。摘自:O'Boyle,M.F.P.,Pingali,K.(编辑)ACM SIGPLAN编程语言设计与实现会议,PLDI’14,英国爱丁堡,2014年6月9日至11日,第33页。ACM(2014)
[13] Dimitrov,D.、Raychev,V.、Vechev,M.、Koskinen,E.:交换性竞争检测。摘自:第35届ACM SIGPLAN编程语言设计与实现会议记录(PLDI’14)(2014)
[14] 安永会计师事务所(GW);Ogden,WF,模块中抽象数据类型的规范,ACM Trans。程序。语言系统。,2, 4, 522-543 (1980) ·Zbl 0468.68020号 ·doi:10.1145/357114.357117
[15] 以太坊。https://ethereum.org/。2020年8月26日访问
[16] Ettinger,R.:程序滑动。2012年6月11日至16日,中国北京,第26届欧洲会议,ECOOP 2012-面向对象编程。会议记录,第713-737页(2012年)
[17] Flon,L.,Misra,J.:规范和验证抽象数据类型的统一方法。摘自:《可靠软件规范会议录》。IEEE计算机学会(1979)
[18] Gehr,T.、Dimitrov,D.、Vechev,M.T.:学习交换性规范。摘自:计算机辅助验证第27届国际会议,CAV 2015,美国加利福尼亚州旧金山,2015年7月18日至24日,会议记录,第一部分,第307-323页(2015)·Zbl 1381.68105号
[19] Herlihy,M.,Koskinen,E.:事务增强:一种用于高度并发事务对象的方法。摘自:第13届ACM SIGPLAN并行编程原理与实践研讨会论文集(PPoPP'08)(2008)
[20] 霍尔,CAR;布罗伊,M。;Denert,E.,软件先驱,《数据表示正确性证明》,385-396(2002),纽约:Springer,纽约·Zbl 0997.68001号
[21] Hu,Y.,Barrett,C.,Goldberg,B.:投机循环优化生成和验证的理论和算法。摘自:第二届IEEE软件工程与形式化方法国际会议论文集(SEFM’04),第281-289页。IEEE计算机学会(2004年9月)
[22] Itzhaky,S.,Gulwani,S.,Immerman,N.,Sagiv,M.:一种简单的归纳合成方法及其应用。摘自:《ACM面向对象编程系统语言和应用国际会议论文集》,OOPSLA’10,美国纽约州纽约市,第36-46页(2010年)。ACM公司
[23] Kim,D.,Rinard,M.C.:验证链接数据结构上的语义交换条件和逆操作。摘自:第32届ACM SIGPLAN编程语言设计与实现会议记录,PLDI 2011,第528-541页。ACM(2011)
[24] Koskinen,E.,Parkinson,M.J.,Herlihy,M.:粗粒度交易。摘自:Hermenegildo,M.V.,Palsberg,J.(编辑)《第37届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集》,POPL 2010,第19-30页。ACM(2010)·Zbl 1312.68143号
[25] Koskinen,E.,Parkinson,M.J.:交易的推/拉模型。In:ACM SIGPLAN编程语言设计与实现会议,PLDI’15,波特兰,俄勒冈州,美国,2015年6月
[26] Kulkarni,M.,Nguyen,D.,Prountzos,D.,Sui,X.,Pingali,K.:利用交换格。摘自:第32届ACM SIGPLAN编程语言设计与实现会议记录,PLDI 2011,第542-555页。ACM(2011)
[27] Leino,K.R.M.:在规范#中指定和验证程序。摘自:《第六届系统信息学国际展望会议录》,安德烈·埃尔肖夫纪念会议,PSI 2006,第20页(2006)
[28] Lipton,RJ,Reduction:证明并行程序属性的方法,Commun。ACM,18,12,717-721(1975)·兹标0316.68015 ·数字对象标识代码:10.1145/361227.361234
[29] Meyer,B.,应用“合同设计”,IEEE计算。,25, 10, 40-51 (1992) ·doi:10.1109/2.161279
[30] Ni,Y.,Menon,V.,Adl-Tabatabai,A.,Hosking,A.L.,Hudson,R.L.,Moss,J.E.B.,Saha,B.,Shpeisman,T.:软件事务内存中的开放嵌套。摘自:第十二届ACM SIGPLAN并行编程原理与实践研讨会论文集,PPOPP 2007,第68-78页。ACM(2007)
[31] MC里纳德;Diniz,PC,交换性分析:一种用于并行化编译器的新分析技术,ACM Trans。程序。语言系统。,1942-991年6月19日(1997年)·doi:10.1145/267959.26969
[32] Sergey,I.,Hobor,A.:智能合约的并行视角。参加:第一届可信智能合同研讨会(2017年)
[33] Servois主页。http://cs.nyu.edu/kshitij/项目/伺服。2020年8月26日访问
[34] Servois源代码。https://github.com/kbansal/servois。2020年8月26日访问
[35] Solar-Lezama,A.,Jones,C.G.,Bodík,R.:绘制并发数据结构。摘自:《2008年ACM SIGPLAN编程语言设计与实现会议论文集》,第136-148页(2008)
[36] Solidity编程语言。https://solidity.readthedocs.io/en/develop/。2020年8月26日访问
[37] Tripp,O.,Manevich,R.,Field,J.,Sagiv,M.:Janus:通过后见开发并行性。摘自:第33届ACM SIGPLAN编程语言设计与实现会议记录,PLDI’12,美国纽约州纽约市,第145-156页(2012年)。ACM公司
[38] Tripp,O.,Yorsh,G.,Field,J.,Sagiv,M.:HAWKEYE:有效发现并行化的数据流障碍。摘自:第26届ACM SIGPLAN面向对象编程、系统、语言和应用年度会议记录,OOPSLA 2011,SPLASH 2011的一部分,美国俄勒冈州波特兰,2011年10月22日至27日,第207-224页(2011)
[39] Vechev,M.T.、Yahav,E.、Yorsh,G.:同步的抽象引导合成。摘自:第37届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,POPL 2010,pp.327-338(2010)·Zbl 1312.68043号
[40] Vechev,M.T.,Yahav,E.:导出可线性化的细粒度并发对象。摘自:ACM SIGPLAN 2008年编程语言设计与实现会议记录,第125-135页(2008)
[41] 王,C。;杨,Z。;卡隆,V。;古普塔,A。;Vojnar,T。;Zhang,L.,Peephole偏序约简,系统构建和分析的工具和算法,382-396(2008),柏林:施普林格出版社,柏林·Zbl 1134.68421号
[42] Weihl,W.,抽象数据类型的基于交换性的并发控制,IEEE Trans。计算。,37, 12, 1488-1505 (1988) ·Zbl 0674.68016号 ·数字对象标识代码:10.1109/12.9728
[43] Xiao,T.、Zhang,J.、Zhou,H.、Guo,Z.、McDirmid,S.、Lin,W.、Chen,W.和Zhou?mapreduce程序中非交换聚合器的实证研究。收录于:《第36届国际软件工程会议论文集》,ICSE Companion 2014,美国纽约州纽约市,第44-53页(2014)。ACM公司
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。