×

使用FSL++解决现实生活中轻松的并发问题。 (英语) Zbl 1485.68061号

Yang,Hongseok(编辑),《编程语言和系统》。2017年4月22日至29日在瑞典乌普萨拉举行的第26届欧洲编程研讨会(ESOP 2017),是欧洲软件理论与实践联合会议(ETAPS 2017)的一部分。诉讼程序。柏林:斯普林格。莱克特。注释计算。科学。10201, 448-475 (2017).
摘要:我们扩展了隔离分离逻辑(FSL),这是一种用于推理C11放松访问和内存隔离的程序逻辑。我们对FSL的扩展允许我们处理实际中出现的并发算法。FSL中添加的新功能允许对并发非原子读取、原子更新、通过发布序列进行所有权转移和重影状态进行推理。作为扩展FSL功能的演示,我们验证了原子参考计数器(ARC)的正确性,ARC是Rust编程语言的标准库,其实现在很大程度上依赖于C11内存模型的高级功能。Coq中建立了FSL及其扩展的健全性,以及ARC的正确性证明。
关于整个系列,请参见[Zbl 1360.68021号]。

理学硕士:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
03B70型 计算机科学中的逻辑
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
68问题85 并发和分布式计算的模型和方法(进程代数、互模拟、转换网等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] 原子参考计数器(ARC)文档。https://doc.rust-lang.org/std/sync/struct.Arc.html
[2] Rust编程语言。https://www.rust-lang.org/
[3] Algale,J。;Rival,X.,《弱一致性的模拟和不变性》,《静态分析》,3-22(2016),海德堡:斯普林格出版社·doi:10.1007/978-3-662-53413-7_1
[4] 阿尔格拉夫,J。;Kroening,D。;尼马尔,V。;Poetzl博士。;Biere,A。;Bloem,R.,《不要坐在围栏上——自动插入围栏的静态分析方法》,《计算机辅助验证》,508-524(2014),海德堡:斯普林格出版社·doi:10.1007/978-3-319-08867-9_33
[5] Batty,M.、Dodds,M.和Gotsman,A.:C/C++并发的库抽象。收录于:POPL 2013,第235-248页。ACM(2013年)·Zbl 1301.68088号
[6] Batty,M.、Owens,S.、Sarkar,S.,Sewell,P.、Weber,T.:C++并发的数学化。收录于:POPL 2011,第55-66页。ACM(2011年)·Zbl 1284.68165号
[7] Boehm,H.,Demsky,B.:出格鬼魂:避免出格的结果。摘自:Singer,J.,Kulkarni,M.,Harris,T.(编辑)MSPC 2014,第7:1-7:6页。ACM(2014)
[8] Bornat,R.、Calcagno,C.、O'Hearn,P.W.、Parkinson,M.J.:分离逻辑中的权限核算。收录于:POPL 2005,第259-270页。ACM(2005)·Zbl 1369.68130号
[9] Bouajjani,A。;梅耶,R。;Möhlmann,E。;丙酮,L。;Henzinger,M。;Sgall,J.,《确定针对总商店订单的稳健性》,《自动化,语言和编程》,428-440(2011),海德堡:斯普林格,海德伯格·Zbl 1333.68082号 ·doi:10.1007/978-3-642-22012-8_34
[10] Boyland,J。;Cousot,R.,《检查对分数权限的干扰》,《静态分析》,55-72(2003),海德堡:施普林格出版社·Zbl 1067.68537号 ·doi:10.1007/3-540-44898-54
[11] Derevenetc,E。;梅耶,R。;埃斯帕尔扎,J。;Fraigniaud,P。;Husfeldt,T。;Koutsoupias,E.,《强大的抵抗力是PSpace-complete》,《自动化、语言和编程》,158-170(2014),海德堡:斯普林格·Zbl 1409.68069号 ·数字对象标识代码:10.1007/978-3-662-43951-7_14
[12] Dinsdale-Young,T.,Birkedal,L.,Gardner,P.,Parkinson,M.J.,Yang,H.:观点:并发程序的组合推理。收录于:Giacobazzi,R.,Cousot,R.(编辑)POPL 2013,第287-300页。ACM(2013年)·兹比尔1301.68099
[13] 多科,M。;瓦菲亚迪斯,V。;乔布斯特曼,B。;Leino,KRM,《C11内存围栏、验证、模型检查和抽象解释的程序逻辑》,413-430(2016),海德堡:斯普林格·Zbl 1475.68083号 ·数字对象标识代码:10.1007/978-3-662-49122-5_20
[14] He,M.,Vafeiadis,V.,Qin,S.,Ferreira,J.F.:关于围栏和放松原子的推理。摘自:PDP 2016,第520-527页。IEEE计算机学会(2016)
[15] ISO/IEC 14882:2011:编程语言C++(2011)
[16] ISO/IEC 9899:2011:程序设计语言C(2011)
[17] Jeffrey,A.,Riely,J.:凭空阅读轻松记忆的事件结构模型。收录于:LICS 2016,第759-767页。ACM(2016)·Zbl 1392.68304号
[18] 简森(JB Jensen);Birkedal,L。;Seidl,H.,《虚构分离逻辑,编程语言和系统》,377-396(2012),海德堡:施普林格出版社·Zbl 1352.68062号 ·doi:10.1007/978-3642-28869-2_19
[19] Kang,J.,Hur,C.K.,Lahav,O.,Vafeiadis,V.,Dreyer,D.:一种有前途的松弛内存并发语义。收录于:POPL 2017,第175-189页。ACM(2017)·Zbl 1380.68103号
[20] Lahav,O.,Giannarakis,N.,Vafeiadis,V.:驯服释放-获得一致性。收录于:Bodík,R.,Majumdar,R.(编辑)POPL 2016,第649-662页。ACM(2016)·Zbl 1347.68086号
[21] O.拉哈夫。;瓦菲亚迪斯,V。;Halldórsson,MM;岩马,K。;小林,N。;Speckmann,B.,Owicki-Gries《弱内存模型的推理》,《自动机、语言与编程》,311-323(2015),海德堡:斯普林格,海德伯格·Zbl 1440.68046号 ·doi:10.1007/978-3-662-47666-6_25
[22] Lamport,L.,《如何制作正确执行多进程程序的多处理器计算机》,IEEE Trans。计算。,28, 9, 690-691 (1979) ·Zbl 0419.68045号 ·doi:10.1109/TC.1979.1675439
[23] Ley-Wild,R.,Nanevski,A.:粗粒度并发的主观辅助状态。收录于:Giacobazzi,R.,Cousot,R.(编辑)POPL 2013,第561-574页。ACM(2013年)·兹比尔1301.68102
[24] Meshman,Y.、Rinetzky,N.、Yahav,E.:基于模式的C++内存模型同步合成。收录于:Kaivola,R.,Wahl,T.(编辑)FMCAD 2015,第120-127页。IEEE(2015)
[25] Norris,B.,Demsky,B.:CDSChecker:检查用C/C++原子编写的并发数据结构。摘自:Hosking,A.L.,Eugster,P.T.,Lopes,C.V.(编辑)OOPSLA 2013,第131-150页。ACM(2013)
[26] 奥赫恩,普华永道;加德纳,P。;吉田,N.,《资源、并发和局部推理》,CONCUR 2004-并发理论,49-67(2004),海德堡:施普林格,海德伯格·Zbl 1099.68588号 ·doi:10.1007/978-3-540-28644-84
[27] 奥赫恩,PW;Yang,H。;雷诺兹,JC,《分离与信息隐藏》,ACM Trans。程序。语言系统。,31, 3, 11 (2009) ·Zbl 1325.68069号
[28] Pichon-Pharabod,J.,Sewell,P.:一种用于宽松原子的并发语义,允许优化并避免执行thin-air。收录于:Bodík,R.,Majumdar,R.(编辑)POPL 2016,第622-633页。ACM(2016)·Zbl 1347.68091号
[29] Reynolds,J.C.:分离逻辑:共享可变数据结构的逻辑。收录于:LICS 2002,第55-74页。IEEE计算机学会(2002)
[30] 里奇,T。;Leavens,燃气轮机;奥赫恩,P。;Rajamani,SK,《x86-TSO的可靠保证证明系统》,《验证软件:理论、工具、实验》,55-70(2010),海德堡:斯普林格出版社·doi:10.1007/978-3642-15057-94
[31] Sarkar,S.、Memarian,K.、Owens,S.,Batty,M.、Sewell,P.、Maranget,L.、Algale,J.、Williams,D.:同步C/C++和电源。参见:PLDI 2012,第311-322页。ACM(2012年)
[32] Sieczkowski,F。;Svendsen,K。;Birkedal,L。;Pichon-Pharabod,J。;Vitek,J.,《虚构序列一致性的分离逻辑》,《编程语言与系统》,736-761(2015),海德堡:斯普林格出版社·Zbl 1335.68068号 ·数字对象标识代码:10.1007/978-3-662-46669-8_30
[33] Tassarotti,J.,Dreyer,D.,Vafeiadis,V.:验证弱内存逻辑中的读-复制更新。摘自:Grove,D.,Blackburn,S.(编辑)PLDI 2015,第110-120页。ACM(2015)
[34] Turon,A.,Vafeiadis,V.,Dreyer,D.:GPS:用幽灵、协议和分离导航脆弱的记忆。摘自:Black,A.P.,Millstein,T.D.(编辑)OOPSLA 2014,第691-707页。ACM(2014)
[35] Vafeiadis,V.,Narayan,C.:松弛分离逻辑:C11并发的程序逻辑。收录于:Hosking,A.L.、Eugster,P.T.、Lopes,C.V.(编辑)OOPSLA 2013,第867-884页。ACM(2013)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。