×

一个基于断言的多线程Java证明系统。 (英语) Zbl 1070.68016号

摘要:除了基于类的面向对象语言的功能外,Java还通过其线程类集成了并发性,从而实现了多线程的控制流。并发模型包括同步消息传递、动态线程创建、通过实例变量共享变量并发,以及通过可重入同步监控器进行协调。
为了解释多线程Java程序的安全属性,我们引入了一种Java多线程子语言的断言证明方法,涵盖了上述并发问题以及Java的基于对象的核心。验证方法是根据证明来制定的,其中断言分为指定单个实例行为的局部断言和处理对象之间连接的全局断言。我们确立了证明体系的健全性和相对完整性。从一个带注释的程序中,生成了一些验证条件,并将其交给交互式定理证明程序PVS。

MSC公司:

第68页第15页 编程语言理论
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] M.阿巴迪。;Cardelli,L.,《计算机科学中的对象理论专著》(1996),施普林格:施普林格柏林·Zbl 0876.68014号
[2] M.Abadi,K.R.M.Leino,《面向对象程序的逻辑》,载于:M.Bidoit,M.Dauchet(编辑),Proc。TAPSOFT’97,《计算机科学讲义》,第1214卷,施普林格,里尔,法国,1997年,第682-696页。本文的扩展版本出现在SRC研究报告161(1998年9月)中。;M.Abadi,K.R.M.Leino,《面向对象程序的逻辑》,载于:M.Bidoit,M.Dauchet(编辑),Proc。TAPSOFT’97,《计算机科学讲义》,第1214卷,施普林格,里尔,法国,1997年,第682-696页。本文的扩展版本为SRC研究报告161(1998年9月)。
[3] E.ábrahám,多线程Java理论和工具支持的断言证明系统,莱顿大学博士论文,即将发表。初步版本可以在\(\sim;\);E.ábrahám,多线程Java理论和工具支持的断言证明系统,莱顿大学博士论文,即将发表。初步版本可以在\(\sim;\)找到
[4] E.ábrahám,F.S.de Boer,W.-P.de Roever,m.Steffen,《Java监视器的Hoare逻辑》,技术报告TR-ST-03-1,Lehrstuhl Für Software-Technologie,瑞士信息与数学研究所,Christian-Albrechts-Universität zu Kiel,2003年4月,URL\(\#60;>\);E.Ábrahám,F.S.de Boer,W.-P.de Roever,m.Steffen,《Java监视器的骗局逻辑》,技术报告TR-ST-03-1,Lehrstuhl Für软件技术,信息与实践研究所,基尔阿尔布雷支大学,2003年4月,URL\(\\#60;>\)
[5] E.ábrahám,F.S.de Boer,W.-P.de Roever,m.Steffen,Java的组合操作语义({}_{mathit{MT}});E.ábrahám,F.S.de Boer,W.-P.de Roever,m.Steffen,Java的组合操作语义
[6] E.ábrahám,F.S.de Boer,W.-P.de Roever,m.Steffen,《带例外的多线程Java归纳证明大纲》,《技术报告0313》,瑞士信息与数学研究所,Christian-Albrechts-Universität zu Kiel,2003年12月。网址\(\\#60;>\);E.ábrahám,F.S.de Boer,W.-P.de Roever,m.Steffen,《带例外的多线程Java归纳证明大纲》,《技术报告0313》,瑞士信息与数学研究所,Christian-Albrechts-Universität zu Kiel,2003年12月。URL \(\<>\)·兹比尔1253.68080
[7] E.ábrahám-Mumm,F.S.de Boer,《Java中线程的验证大纲》,收录于:C.Palamidessi(编辑),Proc。CONCUR’00,《计算机科学讲义》,第1877卷,柏林施普林格出版社,2000年,第229-242页。;E.ábrahám-Mumm,F.S.de Boer,《Java中线程的验证大纲》,收录于:C.Palamidessi(编辑),Proc。CONCUR’00,《计算机科学讲义》,第1877卷,柏林施普林格出版社,2000年,第229-242页·Zbl 0999.68504号
[8] E.ábrahám-Mumm,F.S.de Boer,W.-P.de Roever,m.Steffen,验证Java的可重入多线程概念,收录于:m.Nielsen,U.H.Engberg(编辑),Proc。FoSSaCS’02,《计算机科学讲义》,第2303卷,柏林斯普林格,2002年,第4-20页。2002年3月,技术报告TR-ST-02-1中出现了一个较长的版本,包括可靠性和完整性证明。;E.ábrahám-Mumm,F.S.de Boer,W.-P.de Roever,m.Steffen,验证Java的可重入多线程概念,收录于:m.Nielsen,U.H.Engberg(编辑),Proc。FoSSaCS’02,《计算机科学讲义》,第2303卷,柏林斯普林格,2002年,第4-20页。2002年3月,技术报告TR-ST-02-1中出现了更长的版本,包括可靠性和完整性证明·Zbl 1077.68552号
[9] E.ábrahám,F.S.de Boer,W.-P.de Roever,m.Steffen,Java显示器的归纳校对,收录于:E.Najm,U.Nestmann,P.Stevens(编辑),Proc。第六届IFIP国际。Conf.开放式基于对象分布式系统的形式化方法(FMOODS’03),巴黎,计算机科学讲义,第2884卷,施普林格,柏林,2003年,第155-169页。更长的版本出现在技术报告TR-ST-03-1中,2003年4月http://www.informatik.uni-kiel.de/inf/deRoever/techreports/03/tr-st-03-1.pdf \(>\); E.ábrahám,F.S.de Boer,W.-P.de Roever,m.Steffen,Java显示器的归纳校对,收录于:E.Najm,U.Nestmann,P.Stevens(编辑),Proc。第六届IFIP国际。Conf.基于开放对象的分布式系统的形式化方法(FMOODS’03),巴黎,计算机科学讲义,第2884卷,施普林格,柏林,2003年,第155-169页。更长的版本出现在技术报告TR-ST-03-1中,2003年4月http://www.informatik.uni-kiel.de/inf/deRoever/techreports/03/tr-st-03-1.pdf \(>\) ·Zbl 1253.68080号
[10] E.ábrahám-Mumm,F.S.de Boer,W.-P.de Roever,m.Steffen,Java中监视器的工具支持证明系统,收录于:m.Bonsange,F.S..de Boer、W.-P de Roeven,S.Graf(编辑),Proc。第一国际。交响乐团。组件和对象的形式化方法(FMCO'02),莱顿,计算机科学讲义,第2852卷,施普林格,柏林,2003年,第1-32页。;E.ábrahám-Mumm,F.S.de Boer,W.-P.de Roever,m.Steffen,Java中监视器的工具支持证明系统,收录于:m.Bonsange,F.S..de Boer、W.-P de Roeven,S.Graf(编辑),Proc。第一国际。交响乐团。组件和对象的形式化方法(FMCO’02),莱顿,《计算机科学讲义》,第2852卷,施普林格,柏林,2003年,第1-32页·Zbl 1254.68055号
[11] J.Alves-Foss(Ed.),Java的形式语法和语义,计算机科学现状调查中的讲义,第1523卷,Springer,柏林,1999年。;J.Alves-Foss(编辑),《Java的形式语法和语义》,《计算机科学现状调查中的讲义》,第1523卷,施普林格出版社,柏林,1999年。
[12] P.America,《面向对象编程语言中的行为子类型方法》,443,菲利普斯研究实验室,1989年1月/4月。;P.America,《面向对象编程语言中的行为子类型方法》,443,菲利普斯研究实验室,1989年1月/4月·Zbl 0681.68010号
[13] P.America,F.S.de Boer,《SPOOL健全完整的证明系统》,《技术报告505》,飞利浦研究实验室,1990年。;P.America,F.S.de Boer,SPOOL的一个完善的证明系统,技术报告505,飞利浦研究实验室,1990年。
[14] Andrews,G.R.,《多线程并行和分布式编程基础》(2000),Addison-Wesley:Addison-Whesley Reading,MA
[15] Apt,K.R。;Francez,N。;deRoever,W.-P.,通信顺序过程的证明系统,ACM Trans。编程语言系统,2359-385(1980)·Zbl 0468.68023号
[16] D.Basin,S.Friedrich,M.Gawkowski,验证字节码模型检查器,收录于:V.A.Carreño,C.A.Muñoz,S.Tahar(编辑),Proc。TPHOLs'02,《计算机科学讲义》,第2410卷,柏林斯普林格出版社,2002年,第47-66页。;D.Basin,S.Friedrich,M.Gawkowski,验证字节码模型检查器,收录于:V.A.Carreño,C.A.Muñoz,S.Tahar(编辑),Proc。TPHOLs'02,《计算机科学讲义》,第2410卷,柏林斯普林格,2002年,第47-66页·Zbl 1013.68544号
[17] Buhr,P.A。;福蒂尔,M。;Coffin,M.H.,监测分类,ACM计算机。调查,27,1,63-107(1995)
[18] P.Cenciarelli,A.Knapp,B.Reus,M.Wirsing,《多线程Java的基于事件的结构操作语义》,收录于:J.Alves-Foss(Ed.),《Java的形式语法和语义》,《计算机科学现状调查讲义》,第1523卷,柏林斯普林格出版社,1999年,第157-200页。;P.Cenciarelli,A.Knapp,B.Reus,M.Wirsing,《多线程Java的基于事件的结构操作语义》,收录于:J.Alves-Foss(Ed.),《Java的形式语法和语义》,《计算机科学现状调查讲义》,第1523卷,柏林斯普林格出版社,1999年,第157-200页。
[19] F.S.de Boer,面向对象的WP-calculus,收录于:W.Thomas(编辑),Proc。FoSSaCS’99,《计算机科学讲义》,第1578卷,柏林斯普林格出版社,1999年,第135-156页。;F.S.de Boer,OO的WP微积分,载于:W.Thomas(Ed.),Proc。FoSSaCS’99,《计算机科学讲义》,第1578卷,柏林斯普林格出版社,1999年,第135-156页。
[20] F.S.de Boer,C.Pierik,带注释的面向对象程序的计算机辅助规范和验证,见:B.Jacobs,A.Rensink(编辑),Proc。FMOODS’02,第209卷,多德雷赫特Kluwer,2002年,第163-177页。;F.S.de Boer,C.Pierik,带注释的面向对象程序的计算机辅助规范和验证,见:B.Jacobs,A.Rensink(编辑),Proc。FMOODS’02,第209卷,多德雷赫特Kluwer,2002年,第163-177页·Zbl 1048.68050号
[21] F.S.de Boer,C.Pierik,《面向对象注释程序验证环境》,技术报告UU-CS-2003-002,乌得勒支大学信息与计算科学研究所,2003年1月。;F.S.de Boer,C.Pierik,《面向对象注释程序验证环境》,技术报告UU-CS-2003-002,乌得勒支大学信息与计算科学研究所,2003年1月。
[22] C.C.de Figueiredo,顺序面向对象语言的证明系统,技术报告UMCS-95-1-1,曼彻斯特大学,1995年。;C.C.de Figueiredo,顺序面向对象语言的证明系统,UMCS-95-1-1技术报告,曼彻斯特大学,1995年。
[23] R.W.Floyd,《赋予程序意义》,J.T.Schwartz(编辑),Proc。交响乐团。申请。数学。1967年第19卷,第19-32页。;R.W.Floyd,《赋予程序意义》,J.T.Schwartz(编辑),Proc。交响乐团。申请。数学。1967年第19卷,第19-32页·Zbl 0189.50204号
[24] 戈斯林,J。;乔伊,B。;Steele,G.L.,《Java语言规范》(1996),Addison-Wesley:Addison-Whesley Reading,MA·Zbl 0865.68001号
[25] Hartel,P.H。;Moreau,L.,形式化Java、Java虚拟机和Java卡的安全,ACM Compute。调查,33,4,517-558(2001)
[26] Hoare,C.A.R.,《计算机编程的公理基础》,通信ACM,12576-580(1969)·Zbl 0179.23105号
[27] M.Huisman,用PVS和Isabelle验证高阶逻辑中的Java程序,奈梅亨大学博士论文,2001年。;M.Huisman,用PVS和Isabelle验证高阶逻辑中的Java程序,奈梅亨大学博士论文,2001年。
[28] B.Jacobs,J.Kiniry,M.Warnier,Java程序验证挑战,收录于:M.Bonsange,F.S.de Boer,W.-P.de Roever,S.Graf(编辑),Proc。第一国际。交响乐团。组件和对象的形式化方法(FMCO'02),莱顿,计算机科学讲义,第2852卷,施普林格,柏林,2003年,第202-220页。;B.Jacobs,J.Kiniry,M.Warnier,Java程序验证挑战,收录于:M.Bonsange,F.S.de Boer,W.-P.de Roever,S.Graf(编辑),Proc。第一国际。交响乐团。组件和对象的形式化方法(FMCO'02),莱顿,计算机科学讲义,第2852卷,施普林格,柏林,2003年,第202-220页。
[29] B.Jacobs、J.van den Berg、M.Huisman、M.van Barkum、U.Hensel、H.Tews,《Java课堂推理》(初步报告),摘自:Proc。OOPSLA’98,ACM,1998,第329-340页(SIGPLAN Not.30(10))。;B.Jacobs、J.van den Berg、M.Huisman、M.van Barkum、U.Hensel、H.Tews,《Java课堂推理》(初步报告),摘自:Proc。OOPSLA’98,ACM,1998年,第329-340页(SIGPLAN Not.30(10))。
[30] G.T.Leavens,A.L.Baker,C.Ruby,《JML的初步设计:Java的行为接口规范语言》,技术报告TR#98-06f,爱荷华州立大学。1999年7月至2000年7月的修订版。;G.T.Leavens,A.L.Baker,C.Ruby,《JML的初步设计:Java的行为接口规范语言》,技术报告TR#98-06f,爱荷华州立大学。1999年7月至2000年7月的修订版。
[31] G.T.Leavens,Y.Cheon,C.Clifton,C.Ruby,D.R.Cok,《JML的设计如何兼顾运行时断言、检查和形式验证》,收录于:M.Bonsange,F.S.de Boer,W.-P.de Roever,S.Graf(编辑),Proc。第一国际。交响乐团。组件和对象的形式化方法(FMCO'02),莱顿,计算机科学讲义,第2852卷,施普林格,柏林,2003年,第262-284页。;G.T.Leavens,Y.Cheon,C.Clifton,C.Ruby,D.R.Cok,《JML的设计如何兼顾运行时断言、检查和形式验证》,收录于:M.Bonsange,F.S.de Boer,W.-P.de Roever,S.Graf(编辑),Proc。第一国际。交响乐团。组件和对象的形式化方法(FMCO'02),莱顿,计算机科学讲义,第2852卷,施普林格,柏林,2003年,第262-284页·Zbl 1075.68009号
[32] G.T.Leavens,W.E.Wheil,关于使用子类型的面向对象程序的推理,在:Proc。OOPSLA’90,ACM,1990年,第212-223页,扩展摘要。;G.T.Leavens,W.E.Wheil,《关于使用子类型的面向对象程序的推理》,摘自:Proc。OOPSLA’90,ACM,1990年,第212-223页,扩展摘要。
[33] G.T.Leavens,W.E.Wheil,《使用超类型抽象的面向对象程序的规范和验证》,Acta Inform。32 (8) (1995) 705-778. 爱荷华州立大学报告92-28d。;G.T.Leavens,W.E.Wheil,使用超类型抽象的面向对象程序的规范和验证,Acta Inform。32 (8) (1995) 705-778. 爱荷华州州立大学报告92-28d发布了扩展版·Zbl 0831.68009号
[34] X.Leroy,《Java字节码验证:概述》,收录于:G.Berry,H.Comon,A.Finkel(编辑),Proc。CAV’01,《计算机科学讲义》,第2102卷,施普林格,柏林,2001年,第265-285页。;X.Leroy,《Java字节码验证:概述》,收录于:G.Berry,H.Comon,A.Finkel(编辑),Proc。CAV’01,《计算机科学讲义》,第2102卷,施普林格,柏林,2001年,第265-285页·Zbl 0996.68591号
[35] 莱文,G。;Gries,D.,《通信顺序过程的证明技术》,《信息学报》。,15, 3, 281-302 (1981) ·Zbl 0463.68034号
[36] Owicki,S。;Gries,D.,并行程序公理证明技术,Acta Inform。,6, 4, 319-340 (1976) ·Zbl 0312.68011号
[37] S.Owre,J.M.Rushby,N.Shankar,PVS:原型验证系统,见:D.Kapur(编辑),自动演绎(CADE-11),计算机科学讲义,第607卷,柏林斯普林格,1992年,第748-752页。;S.Owre,J.M.Rushby,N.Shankar,PVS:原型验证系统,见:D.Kapur(编辑),自动演绎(CADE-11),计算机科学讲义,第607卷,柏林斯普林格,1992年,第748-752页。
[38] A.Poetzsch-Heffter,面向对象程序的规范和验证,慕尼黑理工大学,Habilitationschrift,1997年。;A.Poetzsch-Heffter,面向对象程序的规范和验证,慕尼黑理工大学,Habilitationschrift,1997年。
[39] A.Poetzsch Heffter,面向对象程序验证的逻辑,载于:R.Berghamer,F.Simon(编辑),Proc。《编程语言和编程基础》,Bericht Nr.9717,Institute für Informatik und Praktische Mathematik,Christian-Albrechts-Universität zu Kiel,1997,第31-42页。;A.Poetzsch-Heffter,面向对象程序验证的逻辑,见:R.Berghammer,F.Simon(编辑),Proc。《编程语言和编程基础》,Bericht Nr.9717,Institute für Informatik und Praktische Mathematik,Christian-Albrechts-Universität zu Kiel,1997年,第31-42页。
[40] A.Poetzsch-Heffter,P.Muller,类型化面向对象语言的逻辑基础,收录于:D.Gries,W.-P.de Roever(编辑),Proc。PROCOMET’98,国际信息处理联合会(IFIP),查普曼和霍尔,伦敦,1998年,第404-423页。;A.Poetzsch-Heffter,P.Muller,类型化面向对象语言的逻辑基础,收录于:D.Gries,W.-P.de Roever(编辑),Proc。PROCOMET’98,国际信息处理联合会(IFIP),查普曼和霍尔,伦敦,1998年,第404-423页。
[41] A.Poetzsch-Heffter,P.Müller,顺序Java的编程逻辑,收录于:S.Swierstra(Ed.),Proc。ESOP’99,《计算机科学讲义》,第1576卷,柏林斯普林格出版社,1999年,第162-176页。;A.Poetzsch Heffter,P.Müller,《顺序Java的编程逻辑》,载:S.Swierstra(编辑),Proc。ESOP’99,《计算机科学讲义》,第1576卷,柏林斯普林格,1999年,第162-176页。
[42] C.Pierik,F.S.de Boer,面向对象编程概念的语法定向Hoare逻辑,收录于:E.Najm,U.Nestmann,P.Stevens(编辑),Proc。第六届IFIP国际。Conf.开放式基于对象分布式系统的形式化方法(FMOODS’03),巴黎,计算机科学讲义,第2884卷,施普林格,柏林,2003年,第64-78页。扩展版本为乌得勒支大学技术报告UU-CS-2003-010。;C.Pierik,F.S.de Boer,面向对象编程概念的语法定向Hoare逻辑,收录于:E.Najm,U.Nestmann,P.Stevens(编辑),Proc。第六届国际单项体育联合会。Conf.开放式基于对象分布式系统的形式化方法(FMOODS’03),巴黎,计算机科学讲义,第2884卷,施普林格,柏林,2003年,第64-78页。扩展版本为乌得勒支大学技术报告UU-CS-2003-010·Zbl 1253.68087号
[43] B.Reuse,R.Hennicker,M.Wirsing,《验证OCL约束设计模型Java实现的Hoare演算》,H.Hussmann(Ed.),《软件工程的基本方法》,计算机科学讲稿,第2029卷,柏林斯普林格,2001年,第300-316页。;B.Reuse,R.Hennicker,M.Wirsing,《验证OCL约束设计模型Java实现的Hoare演算》,H.Hussmann(Ed.),《软件工程的基本方法》,计算机科学讲稿,第2029卷,柏林斯普林格,2001年,第300-316页·Zbl 0977.68858号
[44] B.Reuse,M.Wirsing,面向对象程序的Hoare-logic,技术报告,LMU慕尼黑,2000年。;B.Reuse,M.Wirsing,面向对象程序的Hoare-logic,技术报告,LMU慕尼黑,2000年。
[45] Stärk,R。;施密德,J。;Börger,E.,《Java和Java虚拟机定义、验证、验证》(2001),Springer:Springer Berlin·Zbl 0978.68033号
[46] F.Tang,M.Hofmann,Abadi和Leino对象逻辑验证条件的生成(扩展抽象),in:Proc。FOOL'02,2002,更长的版本作为LFCS技术报告提供。;F.Tang,M.Hofmann,Abadi和Leino对象逻辑验证条件的生成(扩展抽象),in:Proc。FOOL'02,2002,更长的版本作为LFCS技术报告提供。
[47] LOOP项目:面向对象系统的形式化方法,2001,(\\#60;>\);LOOP项目:面向对象系统的形式化方法,2001
[48] J.V.Tucker,J.I.Zucker,《抽象数据类型的程序正确性与错误状态语义》,CWI专题丛书,第6卷,北荷兰,阿姆斯特丹,1988年。;J.V.Tucker,J.I.Zucker,《抽象数据类型的程序正确性与错误状态语义》,CWI专题丛书,第6卷,北荷兰,阿姆斯特丹,1988年·兹伯利0641.68028
[49] von Oheimb,D.,Isabelle/HOL中Java的Hoare逻辑,并发计算。实践经验,13,13,1173-1214(2001)·Zbl 0997.68019号
[50] D.von Oheimb,T.Nipkow,《NanoJava的Hoare逻辑:辅助变量、副作用和虚拟方法重访》,L.-H.Eriksson,P.A.Lindsay(编辑),Proc。FME’02,计算机科学课堂讲稿,第2391卷,施普林格,柏林,2002年,第89-105页。;D.von Oheimb,T.Nipkow,《NanoJava的Hoare逻辑:辅助变量、副作用和虚拟方法重访》,L.-H.Eriksson,P.A.Lindsay(编辑),Proc。FME’02,《计算机科学讲义》,第2391卷,柏林斯普林格出版社,2002年,第89-105页·Zbl 1064.68543号
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。