×

使用fork/join的类Java语言的分离逻辑契约。 (英语) Zbl 1170.68413号

Meseguer,José(编辑)等人,代数方法论和软件技术。2008年7月28日至31日在美国伊利诺伊州乌尔班纳举行的2008年AMAST第12届国际会议。诉讼程序。柏林:施普林格出版社(ISBN 978-3-540-79979-5/pbk)。计算机科学课堂讲稿5140199-215(2008)。
摘要:我们将permission-accounting分离逻辑的一个变体改编为具有fork/join的并发类Java语言。为了支持并发读取和信息隐藏,我们将分数权限与抽象谓词相结合。作为一个例子,我们为迭代器提供了一个分离逻辑契约,它可以防止数据竞争和并发修改。我们的程序逻辑是以算法风格呈现的:我们避免了Hoare三元组的结构规则,并通过自然演绎规则和一组合理的公理形式化了类型化堆的逻辑推理。我们表明,经过验证的程序满足以下特性:数据竞争自由、无零偏差和部分正确性。
有关整个系列,请参见[Zbl 1154.68019号].

MSC公司:

68甲15 编程语言理论
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
68号30 软件工程的数学方面(规范、验证、度量、需求等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] Barnett,M.、DeLine,R.、Fähndrich,M.,Leino,K.R.M.、Schulte,W.:用不变量验证面向对象程序。对象技术杂志3(6)(2004)
[2] Berdine,J.、Calcagno,C.、O'Hearn,P.W.:Smallfoot:带分离逻辑的模块化自动断言检查。In:组件和对象的形式化方法(2005)·Zbl 1159.68363号
[3] Bierhoff,K.,Aldrich,J.:别名对象的模块化类型状态验证。在:ACM面向对象编程系统、语言和应用会议(2007)
[4] 博纳特,R。;奥赫恩,P。;加尔卡尼奥,C。;Parkinson,M.,《分离逻辑中的权限核算》,《编程语言原理》(2005),纽约:ACM出版社,纽约·Zbl 1369.68130号
[5] Boyland,J。;Cousot,R.,《用分数权限检查干扰》,静态分析研讨会(2003年),海德堡:施普林格·Zbl 1067.68537号 ·doi:10.1007/3-540-44898-54
[6] Boyland,J.:具有嵌套的部分权限的语义。威斯康星大学密尔沃基分校技术报告(2007年)
[7] Boyland,J.,Retert,W.:将效果和独特性与采用联系起来。In:编程语言原理(2005)·Zbl 1369.68131号
[8] Boyland,J.、Retert,W.、Zhao,Y.:编剧可以独立于他们的作品集。参加:面向对象编程中的别名、限制和所有权国际研讨会(2007年)
[9] Chin,W.,David,C.,Nguyen,H.,Qin,S.:使用分离逻辑增强模块化OO验证。In:编程语言原理(2008)·Zbl 1295.68082号
[10] Crary,K.,Walker,D.,Morrisett,G.:能力微积分中的类型化内存管理。In:程序设计语言原理(1999)
[11] DeLine,R.,Fähndrich,M.:在低级软件中实施高级协议。In:编程语言设计与实现(2001)
[12] DeLine,R.,Fähndrich,M.:对象的类型状态。In:欧洲面向对象编程会议(2004)
[13] Girard,J.-Y。;Girard,J.-Y。;Lafont,Y。;雷格尼尔,L.,《线性逻辑:其语法和语义》,《线性逻辑学进展》(1995),剑桥:剑桥大学出版社,剑桥
[14] Gotsman,A.、Berdine,J.、Cook,B.、Rinetzky,N.、Sagiv,M.:可存储锁和线程的局部推理。参加:亚洲编程语言和系统研讨会(2007年)·兹比尔1137.68354
[15] Haack,C.,Hurlin,C.:迭代器的资源使用协议,网址:http://www.cs.ru.nl/查克/论文/迭代器.pdf·Zbl 1170.68413号
[16] Haack,C.,Hurlin,C.:使用fork/join的类Java语言的分离逻辑契约。技术报告6430,INRIA(2008)·兹比尔1170.68413
[17] Igarashi,A.,Pierce,B.,Wadler,P.:Featherweight Java:Java和GJ的最小核心演算。ACM事务处理。程序。语言系统。23(3) (2001)
[18] Ishtiaq,S.,O'Hearn,P.:BI作为可变数据结构的断言语言。In:程序设计语言原理(2001)·Zbl 1323.68077号
[19] Krishnaswami,G.:用分离逻辑推理迭代器。In:基于组件的系统的规范和验证(2006)
[20] Leavens,G.T.,Baker,A.L.,Ruby,C.:JML的初步设计:一种Java的行为接口规范语言。SIGSOFT软件工程注释31(3)(2006)
[21] Leino,K.R.M.:数据组:指定扩展状态的修改。参加:ACM面向对象编程系统、语言和应用会议(1998年)
[22] O'Hearn,P.:资源、并发和局部推理。西奥。公司。《科学》375(1-3)(2007)·Zbl 1111.68023号
[23] O'Hearn,P.W.,Pym,D.J.:捆绑暗示的逻辑。符号逻辑公报5(2)(1999)·Zbl 0930.03095号
[24] O'Hearn,P.W。;Yang,H。;Reynolds,J.C.,《分离与信息隐藏》,《程序设计语言原理》(2004),纽约:ACM出版社,纽约·Zbl 1325.68069号
[25] Parkinson,M.:Java的局部推理。剑桥大学技术报告UCAM-CL-TR-654(2005)
[26] 帕金森,M.,比尔曼,G.:分离逻辑和抽象。In:编程语言原理(2005)·Zbl 1369.68151号
[27] 帕金森,M.,比尔曼,G.:分离逻辑,抽象和继承。In:编程语言原理(2008)·Zbl 1295.68091号
[28] Reynolds,J.C.,《分离逻辑:共享可变数据结构的逻辑》,《计算机科学中的逻辑》(2002),洛斯·阿拉米托斯:IEEE出版社,洛斯·拉米托斯
[29] 史密斯,F。;Walker,D。;莫里塞特,G。;Smolka,G.,Alias types,Programming Languages and Systems(2000),海德堡:斯普林格·Zbl 0971.68584号
[30] Wadler,P.:线性逻辑的味道。In:计算机科学数学基础(1993)·Zbl 0925.03040号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。