×

分离逻辑的临时只读权限。 (英语) Zbl 1485.68056号

Yang,Hongseok(编辑),《编程语言和系统》。2017年4月22日至29日在瑞典乌普萨拉举行的第26届欧洲编程研讨会(ESOP 2017),是欧洲软件理论与实践联合会议(ETAPS 2017)的一部分。诉讼程序。柏林:斯普林格。莱克特。注释计算。科学。10201, 260-286 (2017).
摘要:我们提出了分离逻辑的扩展,并提供了一种通用机制,用于将任何断言(或“权限”)临时转换为只读形式。无需记帐:我们的只读权限可以自由复制和丢弃。我们认为,在临时访问可变数据结构仅用于阅读的情况下,我们的只读权限可以实现更简明的规范和证明。我们建议的元理论在Coq中得到了验证。
关于整个系列,请参见[Zbl 1360.68021号].

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
03B70号 计算机科学中的逻辑
PDF格式BibTeX公司 XML格式引用
全文: 内政部 哈尔

参考文献:

[1] 阿佩尔,AW;Barthe,G.,验证软件工具链,编程语言和系统,1-17(2011),海德堡:施普林格·Zbl 1326.68047号 ·doi:10.1007/978-3-642-19718-5_1
[2] Balabonski,T。;Pottier,F。;Protzenko,J.,Mezzo的设计和形式化,一种基于许可的编程语言,ACM-Trans。程序。语言系统。,38, 4, 14:1-14:94 (2016) ·电话:10.1145/2837022
[3] Bengtson,J.,Jensen,J.B.,Birkedal,L.:冲锋!Coq中高阶分离逻辑的框架。In:交互式定理证明(ITP),第315-331页(2012)·Zbl 1360.68741号
[4] Berdine,J。;加尔卡尼奥,C。;奥赫恩,普华永道;波尔,FS;Bonsangue,MM;格拉芙,S。;Roever,W-P,Smallfoot:带分离逻辑的模块化自动断言检查,组件和对象的形式化方法,115-137(2006),海德堡:斯普林格·数字对象标识代码:10.1007/118041926
[5] Bornat,R.、Calcagno,C.、O'Hearn,P.、Parkinson,M.:分离逻辑中的权限核算。在:程序设计语言原理(POPL),第259-270页(2005年)·Zbl 1369.68130号
[6] Boyland,J。;Cousot,R.,《检查对分数权限的干扰》,《静态分析》,55-72(2003),海德堡:施普林格出版社·Zbl 1067.68537号 ·doi:10.1007/3-540-44898-54
[7] Boyland,JT,带嵌套的分数权限语义,ACM Trans。程序。语言系统。,32, 6, 22:1-22:33 (2010) ·doi:10.145/1749608.1749611
[8] Boyland,J.T.,Retert,W.:将效果和独特性与采用联系起来。摘自:《程序设计语言原理》(POPL),第283-295页(2005年)·Zbl 1369.68131号
[9] 加尔卡尼奥,C。;Distefano,D。;博巴鲁,M。;Havelund,K。;GJ霍尔兹曼;Joshi,R.,《推断:C程序内存安全的自动程序验证器》,NASA形式方法,459-465(2011),海德堡:斯普林格·doi:10.1007/978-3-642-20398-5_33
[10] Charguéraud,A.:机械化程序验证的特征公式。巴黎第七大学博士论文(2010年)·Zbl 1323.68202号
[11] Charguéraud,A.:命令式程序验证的特征公式(2013年,未出版)。http://www.chargueraud.org/research/2013/cf/cf.pdf ·Zbl 1323.68366号
[12] Charguéraud,A.,Pottier,F.:自包含档案(2017)。http://gallium.inria.fr/fpottier/dev/seplogics/
[13] Coblenz,M.J.、Sunshine,J.、Aldrich,J.,Myers,B.A.、Weber,S.、Shull,F.:探索语言对不变性的支持。摘自:国际软件工程会议(ICSE),第736-747页(2016)
[14] Dinsdale-Young,T.,Birkedal,L.,Gardner,P.,Parkinson,M.J.,Yang,H.:观点:并发程序的组合推理。摘自:《程序设计语言原理》(POPL),第287-300页(2013年)·Zbl 1301.68099号
[15] Distefano,D.,Parkinson,M.J.:jStar:面向Java的实际验证。In:面向对象编程、系统、语言和应用(OOPSLA),第213-226页(2008)
[16] Dockins,R。;霍伯,A。;阿佩尔,AW;Hu,Z.,《分离代数与共享核算的新视角》,《编程语言与系统》,161-177(2009),海德堡:施普林格出版社·doi:10.1007/978-3-642-10672-9_13
[17] Fähndrich,M.,DeLine,R.:采用和关注:命令式编程的实用线性类型。In:编程语言设计与实现(PLDI),第13-24页(2002)
[18] Gordon,C.S.,Parkinson,M.J.,Parsons,J.,Bromfield,A.,Duffy,J.:安全并行的唯一性和参考不变性。In:面向对象编程、系统、语言和应用(OOPSLA),第21-40页(2012)
[19] Gotsman,A.,Berdine,J.,Cook,B.,Rinetzky,N.,Sagiv,M.:可存储锁和线程的局部推理。技术报告MSR-TR-2007-39,Microsoft Research(2007)·Zbl 1137.68354号
[20] 蹄,S。;KRM Leino;缪勒,P。;AJ萨默斯;Giacobazzi,R。;Berdine,J。;Mastroeni,I.,《抽象读取权限:不含分数的分数权限》,《验证、模型检查和抽象解释》,315-334(2013),海德堡:斯普林格·文件编号:10.1007/978-3-642-35873-9_20
[21] 霍波尔,A。;阿佩尔,AW;新西兰纳德利;Drossopoulou,S.,并发分离逻辑的Oracle语义,编程语言和系统,353-367(2008),海德堡:施普林格·Zbl 1133.68371号 ·doi:10.1007/978-3-540-78739-6_27
[22] Jacobs,B.,Piessens,F.:VeriFast程序验证器。鲁汶大学计算机科学系技术报告CW-520(2008)
[23] Jensen,J.B.,Benton,N.,Kennedy,A.:低级代码的高级分离逻辑。摘自:《程序设计语言原理》(POPL),第301-314页(2013)·Zbl 1301.68101号
[24] KRM Leino;缪勒,P。;Castagna,G.,《验证多线程程序的基础》,《编程语言与系统》,378-393(2009),海德堡:施普林格出版社·Zbl 1234.68078号 ·doi:10.1007/978-3642-00590-9_27
[25] Naden,K.,Bocchino,R.,Aldrich,J.,Bierhoff,K.:借用许可的类型系统。摘自:《程序设计语言原理》(POPL),第557-570页(2012年)·Zbl 1321.68173号
[26] O'Hearn,PW,《资源、并发和局部推理》,Theor。计算。科学。,375, 1-3, 271-307 (2007) ·Zbl 1111.68023号 ·doi:10.1016/j.tcs.2006.12.035
[27] Potanin,A。;J·厄斯特隆德。;Zibin,Y。;Ernst,医学博士;克拉克,D。;Noble,J。;Wrigstad,T.,《面向对象编程中的不变性和混叠》。类型、分析和验证,233-269(2013),海德堡:施普林格·文件编号:10.1007/978-3-642-36946-9_9
[28] Pottier,F.:在高阶分离逻辑中验证哈希表及其迭代器。参见:认证课程和证明(CPP),第3-16页(2017年)
[29] Reed,E.:Patina:rust编程语言的形式化。华盛顿大学技术报告UW-CSE-15-03-02(2015)
[30] Reynolds,J.C.:分离逻辑:共享可变数据结构的逻辑。摘自:计算机科学中的逻辑(LICS),第55-74页(2002年)
[31] Mozilla基金会:Rust编程语言(2014)
[32] Wadler,P.:线性类型可以改变世界!收录:Broy,M.,Jones,C.(编辑)《编程概念和方法》,北荷兰(1990)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。