×

懒惰的行为子类型。 (英语) Zbl 1204.68072号

摘要:继承与后期绑定相结合允许灵活的代码重用,但会使形式推理显著复杂化,因为方法调用的接收方类是静态未知的。当程序通过扩展类层次结构进行增量开发时,这一点尤其正确。本文开发了一种新的方法来推理后期绑定方法调用。与传统的行为子类型相比,避免了方法规范的重新验证,而不会将方法重写限制为完全保持行为的重新定义。该方法确保在分析类的方法时,考虑该类及其超类就足够了。因此,不需要完整的类层次结构,并且支持增量推理。我们将这种方法形式化为一种微积分,它懒散地在方法定义上施加上下文相关的子类型约束。演算确保当新类扩展类层次结构时,后期绑定调用所需的所有方法规范都得到满足。微积分不依赖于特定的程序逻辑,但本文中的示例使用了霍尔风格的证明系统。我们证明了分析方法的可靠性。本文最后演示了如何将惰性行为子类型与接口规范相结合,以生成面向对象类层次结构的增量模块化推理系统。

MSC公司:

68N99型 软件理论
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] M.阿巴迪。;Leino,K.R.M.,《面向对象程序的逻辑》,(Dershowitz,N.,《验证:理论与实践》,《专为Zohar Manna撰写的论文》。验证:理论和实践,专为Zo哈尔Manna编写的论文,《计算科学学报》,第2772卷(2003),Springer),第11-41页·Zbl 1274.68055号
[2] Alagic,S。;Kouznetsova,S.,《自类型理论的行为兼容性》,(Magnusson,B.,《第16届欧洲面向对象编程会议论文集》,ECOOP 2002(Málaga,2002年6月)。程序。第16届欧洲杯。面向对象编程会议,ECOOP 2002(马拉加,2002年6月),Lect。计算中的注释。科学。,第2374卷(2002),施普林格),585-608·Zbl 1049.68744号
[3] America,P.,《面向对象编程语言中子类型的行为方法》(Lenzerini,M.;Nardi,D.;Simi,M.,《知识表示和编程语言中的继承层次》(1991),威利出版社),173-190年·Zbl 0681.68010号
[4] America,P.,《使用行为子类型设计面向对象的编程语言》(de Bakker,J.W.;de Roever,W.-P.;Rozenberg,G.,REX School/Wksh.的《面向对象语言基础》(Noordwijkerhout,1990年5月/6月)。程序。REX学校/Wksh。《面向对象语言基础》(Noordwijkerhout,1990年5月/6月),Lect。计算中的注释。科学。,第489卷(1991),施普林格),60-90
[5] Apt,K.R.,《霍尔的逻辑十年:一项调查——第一部分,ACM Trans》。程序。语言系统。,3, 4, 431-483 (1981) ·兹比尔0471.68006
[6] Apt,K.R。;Olderog,E.-R.,《顺序和并发系统的验证》。计算机科学中顺序和并发系统、文本和专著的验证(1991年),Springer·Zbl 0733.68053号
[7] 巴内特,M。;Leino,K.R.M。;Schulte,W.,《规范#编程系统:概述》(The Spec#programming system:an overview)(Barthe,G.;Burdy,L.;Huisman,M.;Lanet,J.-L.;Muntean,T.,《安全、安全和可互操作智能设备的构建与分析》(International Wksh.on Construction and Analysis of Safe,Secure,and Interoperable Smart Devices,CASSIS 2004)(马赛,2004年3月)。修订国际Wksh论文集。《安全、可靠和互操作智能设备的构造和分析》,CASSIS 2004(马赛,2004年3月),Lect。计算中的注释。科学。,第3362卷(2005),施普林格),49-69
[8] (Beckert,B.;Hähnle,R.;Schmitt,P.H.,《面向对象软件的验证:KeY方法》。面向对象软件验证:KeY方法,Artif.Intell.中的注释,第4334卷(2007),Springer)·Zbl 0998.68651号
[9] Broy先生。;Stölen,K.,《交互系统的规范和开发》。交互系统的规范和开发,计算机科学专著(2001),Springer·Zbl 0981.68115号
[10] 伯迪,L。;Cheon,Y。;科克·D·R。;恩斯特,M。;Kiniry,J。;Leavens,G.T。;Leino,K.R.M。;Poll,E.,《JML工具和应用概述》,(Arts,T.;Fokkink,W.,《工业关键系统形式化方法第七国际Wksh会议录》,FMICS’03(Röros,2003年6月)。程序。第7国际Wksh。关于工业关键系统的形式化方法,FMICS'03(Røros,2003年6月),电子。Theor中的注释。计算。科学。,第80卷(2003),爱思唯尔),75-91
[11] Chin,西-北。;大卫·C。;Nguyen,H.-H。;Qin,S.,用分离逻辑增强模块化OO验证,(第35届编程语言原理年会论文集,POPL 2008(加州旧金山,2008年1月)(2008),ACM出版社),87-99·Zbl 1295.68082号
[12] C.Clifton,G.T.Leavens,《遗忘、模块化推理和行为子类型类比》,摘自:Proc。AOSD 2003 Wksh。《方面技术语言的软件工程特性》,SPLAT 2003(马萨诸塞州波士顿,2003年3月),2003年。可从以下位置获得:<网址:http://www.daimi.au.dk/∼;eernst/splat03/papers.html>。;C.Clifton,G.T.Leavens,《遗忘、模块化推理和行为子类型类比》,摘自:Proc。AOSD 2003 Wksh。《方面技术语言的软件工程特性》,SPLAT 2003(马萨诸塞州波士顿,2003年3月),2003年。可从以下位置获得:<网址:http://www.daimi.au.dk/∼;eernst/splat03/papers.html>。
[13] Dahl,O.-J.,《可验证编程》。可验证编程,计算机科学国际系列(1992),普伦蒂斯·霍尔·Zbl 0790.68005号
[14] O.-J.Dahl,B.Myhrhaug,K.Nygaard,(Simula 67)通用基础语言,S-2技术报告,挪威Regnesentral,奥斯陆,1968年。;O.-J.Dahl,B.Myhrhaug,K.Nygaard,(Simula 67)通用基础语言,S-2技术报告,挪威Regnesentral,奥斯陆,1968年。
[15] de Boer,F.S.,面向对象的WP微积分,(Thomas,W.,第二届国际软件科学与计算结构基础会议论文集,FoSSaCS'99(阿姆斯特丹,1999年3月)。程序。第二届软件科学和计算结构基础国际会议,FoSSaCS’99(阿姆斯特丹,1999年3月),Lect。计算中的注释。科学。,第1578卷(1999),施普林格),135-149
[16] de Boer,F.S。;克拉克,D。;Johnsen,E.B.,《未来的完整指南》(De Nicola,R.,第16届欧洲编程交响乐团会议记录,2007年ESOP(布拉加,2007年3月/4月)。程序。第16届欧洲杯。交响乐团。2007年ESOP(布拉加,2007年3月/4月),Lect。计算中的注释。科学。,第4421卷(2007),施普林格),316-330·Zbl 1475.68045号
[17] 达拉,K.K。;Leavens,G.T.,具有可变对象的类型的弱行为子类型,(Brookes,S.D.;Main,M.;Melton,A.;Mislove,M.,Proc.of 11th Ann.Conf.on Mathematical Foundations of Programming Semantics,MFPS-11(杜兰大学,1995年3月/4月)。程序。第11届Ann.Conf.on Mathematical Foundations of Programming Semantics,MFPS-11(杜兰大学,1995年3月/4月),Electron。Theor中的注释。计算。科学。,第1卷(1995),爱思唯尔),91-113·Zbl 0910.68144号
[18] Dhara,K.K。;Leavens,G.T.,《通过规范继承强制行为子类型化》,(第18届软件工程国际会议,ICSE’96(柏林,1996年3月)(1996),IEEE CS出版社),258-267
[19] 多夫兰,J。;约翰森,E.B。;Owe,O.,《动态系统的可观察行为:并发对象的组件推理》(Goldin,D.;Arbab,F.,Wksh的Proc.on the Foundations of Interactive Computing,FInCo'07(Braga,2007年3月)。程序。Wksh的。《交互计算基础》,FInCo’07(Braga,2007年3月),Electron。Theor中的注释。计算。科学。,第203卷(3)(2008),爱思唯尔),19-34·Zbl 1277.68056号
[20] 多夫兰,J。;约翰森,E.B。;Owe,O。;Steffen,M.,Lazy behavior subtyping,(Cuéllar,J.;Maibaum,T.,《第十五届国际形式方法交响曲汇编》,FM 2008(Turku,2008年5月)。程序。第15国际交响乐团。关于形式方法,FM 2008(Turku,2008年5月),Lect。计算中的注释。科学。,第5014卷(2008),施普林格),52-67
[21] 多夫兰,J。;约翰森,E.B。;Owe,O。;Steffen,M.,《多重继承的增量推理》(Leuschel,M.;Wehrheim,H.,《第七届综合形式方法国际会议论文集》,IFM 2009(杜塞尔多夫,2009年2月)。程序。第七届综合形式方法国际会议,IFM 2009(杜塞尔多夫,2009年2月),Lect。计算中的注释。科学。,第5423卷(2009),施普林格),215-230·Zbl 1211.68084号
[22] 芬德勒,R.B。;Felleisen,M.,面向对象语言的契约可靠性,(2001年ACM SIGPLAN面向对象编程、系统、语言和应用会议,OOPSLA’01(佛罗里达州坦帕,2001年10月)(2001年),ACM出版社),1-15
[23] 伽玛,E。;赫尔姆·R。;约翰逊,R。;Vlissides,J.,《设计模式:可重用面向对象软件的元素》(1995),Addison-Wesley
[24] 霍尔,C.A.R.,《计算机编程的公理基础》,Commun。ACM,12,10576-580(1969年)·Zbl 0179.23105号
[25] Hoare,C.A.R.,《过程和参数:公理方法》(Engeler,E.,算法语言语义研讨会,算法语言语义学研讨会,数学笔记,第188卷(1971),Springer),102-116·Zbl 0221.68020号
[26] Hoare,C.A.R.,《通信顺序过程》。通信顺序过程,计算机科学国际系列(1985),普伦蒂斯·霍尔·Zbl 0637.68007号
[27] M.Huisman,《用PVS和Isabelle验证高阶逻辑中的Java程序》,博士论文,Kathol。奈梅亨大学,2001年。;M.Huisman,《用PVS和Isabelle验证高阶逻辑中的Java程序》,博士论文,Kathol。奈梅亨大学,2001年。
[28] Igarashi,A。;皮尔斯,公元前。;Wadler,P.,《Featherweight Java:Java和GJ的最小核心演算》,ACM Trans。在程序上。语言和系统。,23, 3, 396-450 (2001)
[29] 雅各布斯,B。;Poll,E.,《Java建模语言JML的逻辑》(Hußmann,H.,第四届国际软件工程基本方法大会的会议记录,FASE 2001(Genova,2001年4月)。程序。第四届国际软件工程基本方法大会,FASE 2001(Genova,2001年4月),Lect。计算中的注释。科学。,第2029卷(2001),施普林格),284-299·Zbl 0977.68588号
[30] 约翰森,E.B。;Owe,O.,《存在异步方法调用时的继承》,(第38届夏威夷系统科学国际会议论文集,HICSS’05(HI大岛,2005年1月)(2005),IEEE CS出版社),论文282c
[31] 约翰森,E.B。;Owe,O.,分布式并发对象的异步通信模型,软件和系统建模,6,1,35-58(2007)
[32] 约翰森,E.B。;Owe,O。;Yu,I.C.,Creol:分布式并发系统的类型安全面向对象模型,Theor。计算。科学。,365,1-2,23-66(2006年)·Zbl 1118.68031号
[33] Khatchadourian,R。;多夫兰,J。;Soundarajan,N.,《在不断发展的面向方面的程序中实施行为约束》,(第七届国际Wksh会议关于面向方面语言基础的Proc.,FOAL 2008(布鲁塞尔,2008年4月)(2008),ACM出版社),19-28
[34] Leavens,G.T。;Wheil,W.E.,《关于使用子类型的面向对象程序的推理》,(《面向对象编程、系统、语言和应用第五届会议论文集》,OOPSLA’90,第四届欧洲面向对象编程会议论文集,ECOOP’90(渥太华,1990年10月)(1990),ACM出版社),212-223
[35] G.T.莱文斯,D.A.诺曼。行为分型、规范继承和模块化推理,技术报告06-20a,计算机系。科学,爱荷华州州立大学,2006年。;G.T.Leavens,D.A.Naumann。行为子类型、规范继承和模块化推理,《技术报告06-20a》,计算部。科学,爱荷华州立大学,2006年。
[36] Leavens,G.T。;Leino,K.R.M。;Müller,P.,顺序面向对象程序的规范和验证挑战,计算的形式化方面,19,2,159-189(2007)·Zbl 1121.68074号
[37] Liskov,B.,《数据抽象和层次结构》,(面向对象编程、系统、语言和应用第二届会议程序补遗,OOPSLA’87(佛罗里达州奥兰多,1987年10月)(1987),ACM出版社),17-34
[38] Liskov,B.H。;Wing,J.M.,子类型的行为概念,ACM Trans。在程序上。语言和系统。,16, 6, 1811-1841 (1994)
[39] 罗,C。;Qin,S.,多重继承的分离逻辑,(Chen,Y.;Zhang,G.-Q.;Panangaden,P.,第一届信息论、计算与软件基础国际会议的程序,FICS 2008(上海,2008年6月)。程序。第一届信息、计算和软件基础国际会议,FICS 2008(上海,2008年6月),Electron。Theor中的注释。计算。科学。,第212卷(2008),爱思唯尔),27-40·Zbl 1286.68320号
[40] 米哈伊洛夫,L。;Sekerinski,E.,《脆弱基类问题的研究》,(Jul,E.,第12届欧洲面向对象编程会议论文集,ECOOP’98(布鲁塞尔,1998年7月)。程序。第12届欧洲杯。面向对象编程会议,ECOOP’98(布鲁塞尔,1998年7月),Lect。计算中的注释。科学。,第1445卷(1998年),施普林格出版社),355-382
[41] Owicki,S。;Gries,D.,并行程序公理证明技术I,Acta Inform。,6, 4, 319-340 (1976) ·Zbl 0312.68011号
[42] 帕金森,M.J。;Bierman,G.M.,《分离逻辑、抽象和继承》,(第35届编程语言原理年度研讨会论文集,POPL 2008(加州旧金山,2008年1月)(2008),ACM出版社),75-86·Zbl 1295.68091号
[43] Pierik,C。;de Boer,F.S.,面向对象编程的证明大纲逻辑,Theor。计算。科学。,343, 3, 413-442 (2005) ·Zbl 1077.68018号
[44] C.Pierik,F.S.de Boer,《关于行为亚型和完整性》,载于:Proc。ECOOP 2005 Wksh。《类Java程序的形式化技术》,FTfJP 2005(格拉斯哥,2005年7月),2005。可从以下位置获得:<http://www.cs.ru.nl/ftfjp/2005.html>.; C.Pierik,F.S.de Boer,《关于行为子类型和完整性》,摘自:Proc。ECOOP 2005 Wksh。《类Java程序的形式化技术》,FTfJP 2005(格拉斯哥,2005年7月),2005。可从以下位置获得:<http://www.cs.ru.nl/ftfjp/2005.html>.
[45] 诗人赫夫特。;Müller,P.,《顺序Java的编程逻辑》(Swierstra,S.D.,《第八届欧洲编程交响乐会汇编》,ESOP’99(阿姆斯特丹,1999年3月)。程序。第八届欧洲。交响乐团。关于编程,ESOP’99(阿姆斯特丹,1999年3月),Lect。计算中的注释。科学。,第1576卷(1999),施普林格),162-176
[46] Soundarajan,N。;Fridella,S.,《继承:从代码重用到推理重用》(Inheritance:from code reuse to reasoning reuse),(第五届软件重用国际会议议事录,ICSR-5(维多利亚,不列颠哥伦比亚省,1998年6月)(1998),IEEE CS Press),206-215
[47] Soundararajan,N.,通信顺序过程的公理语义,ACM Trans。在程序上。语言和系统。,6, 4, 647-662 (1984) ·Zbl 0542.68013号
[48] 冯·奥海姆,D。;Nipkow,T.,《NanoJava的Hoare逻辑:辅助变量、副作用和重新审视的虚拟方法》(Eriksson,L.-H.;Lindsay,P.A.,Proc.of 2002 Int.Symp.of Formal methods Europe,FME 2002)(丹麦,2002年7月)。程序。2002年国际交响乐团。欧洲正式方法,FME 2002(丹麦,2002年7月),Lect。计算中的注释。科学。,第2391卷(2002),施普林格),89-105·Zbl 1064.68543号
[49] D.von Oheimb,《分析Isabelle/HOL中的Java:形式化、类型安全和Hoare-Logics》,慕尼黑理工大学博士论文,2001年。;D.von Oheimb,《分析Isabelle/HOL中的Java:形式化、类型安全和Hoare-Logics》,慕尼黑理工大学博士论文,2001年·Zbl 0997.68019号
[50] Wehrheim,H.,主动对象的行为子类型关系,系统设计中的形式方法,23,2,143-170(2003)·Zbl 1057.68015号
[51] Wills,A.,《壁画规范》(Stepney,S.;Barden,R.;Cooper,D.,《Z中的对象定向》,《计算机研讨会》(1992),Springer),127-135
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。