×

使用超类型抽象的面向对象程序的规范和验证。 (英语) Zbl 0831.68009号

摘要:我们为简单的面向对象编程语言提供了一种形式化规范语言和形式化验证逻辑。该语言具有应用性和静态类型,并支持子类型和消息传递。验证逻辑依赖于子类型的行为概念,该概念捕获子类型行为与其超类型类似的直觉。我们基于对象的特定行为给出了法律子类型关系的形式化定义,并表明该定义足以确保验证逻辑的合理性。验证逻辑反映了程序员对面向对象程序进行非正式推理的方式,因为它允许他们使用静态类型信息,从而避免了考虑所有可能的运行时子类型的需要。

MSC公司:

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

参考文献:

[1] America,P.:并行面向对象语言中的继承和子类型。摘自:Bezivin,J.等人(编辑)ECOOP’87,欧洲面向对象编程会议,法国巴黎,第234–242页,纽约,1987年。施普林格,《计算机科学讲义》,第276卷
[2] America,P.:使用行为子类型设计面向对象的编程语言。收录人:de Bakker,J.W.,de Roever,W.P.,Rozenberg,G.(编辑)面向对象语言基础,REX学校/研讨会,荷兰诺德维克霍特,1990年5月/6月,计算机科学讲稿第489卷,第60-90页。斯普林格,纽约州,纽约州,1991年
[3] America,P.,de Boer,F.:一个完善的SPOOL证明理论。技术报告505,荷兰飞利浦贝德里芬公司飞利浦研究实验室,1990年
[4] Broy,M.:关于不确定性、并行性、通信和并发性的理论。理论计算机科学45(1):1–611986·Zbl 0601.68022号 ·doi:10.1016/0304-3975(86)90040-X
[5] Bruce,K.B.,Longo,G.:记录、继承和有限量化的适度模型。在Gurevich,Y.(编辑)第三届计算机科学逻辑年度研讨会,第38-51页。IEEE,1988年·Zbl 0837.68057号
[6] Bruce,K.B.,Wegner,P.:亚型和遗传的代数模型。收录:Bancilhon,F.,Buneman,P.(编辑)《数据库编程语言进展》,第75-96页。Addison-Wesley,马萨诸塞州雷丁,1990年
[7] Burstall,R.M.,Goguen,J.A.:代数、理论和自由:计算机科学家入门。收录于:Broy,M.,Schmidt,G.(编辑)《编程方法论的理论基础:国际暑期学校的讲稿》,由F.L.Bauer,E.W.Dijkstra,C.A.R.Hoare执导,C辑第91卷,第329-348页。D.Reidel,多德雷赫特,荷兰·Zbl 0518.68009号
[8] Cardelli,L.:多重继承的语义。收录于:G.Kahn,D.B.M.,Plotkin,G.(eds)《数据类型的语义:国际研讨会》,法国索菲亚·安蒂波利斯,计算机科学讲稿第173卷,第51-66页。本文的修订版本见:《信息与计算》,第76期,第138-164页,1988年
[9] Cardelli,L.:结构亚型和权力类型的概念。摘自:加利福尼亚州圣地亚哥市第十五届ACM编程语言原则年会会议记录,第70-79页。ACM,1988年
[10] Cardelli,L.,Wegner,P.:关于理解类型、数据抽象和多态性。ACM计算调查17(4):471–5221985·数字对象标识代码:10.1145/6041.6042
[11] Chen,J.:落叶松/通用接口语言。技术报告,麻省理工学院EECS系,1989年。作者的学士论文。麻省理工学院John Guttag提供(guttag@lcs.mit.edu)
[12] Cheon,Y.Larch/Smalltalk:Smalltalk的规范语言。技术报告91-15,爱荷华州立大学计算机科学系,爱荷华州艾姆斯,1991年。可通过匿名ftp从ftp.cs.iastate.edu获取,也可通过电子邮件从almanac@cs.iastate.edu
[13] Cook,S.A.:程序验证公理系统的健全性和完整性。SIAM计算杂志7:70–901978·兹比尔0374.68009 ·数字对象标识代码:10.1137/0207005
[14] Cook,W.R.:面向对象编程与抽象数据类型。收录人:de Bakker,J.W.,de Roever,W.P.,Rozenberg,G.(编辑)面向对象语言基础,REX学校/研讨会,荷兰诺德维克霍特,1990年5月/6月,计算机科学讲稿第489卷,第151-178页。施普林格,纽约,1991年
[15] 库克,W.R.,希尔,W.L.,坎宁,P.S.:遗传不是子类型。摘自:第十七届美国计算机学会编程语言原理研讨会会议记录,加利福尼亚州旧金山,第125-135页,1990年。也是STL-89-17,软件技术实验室,Hewlett-Packard实验室,加利福尼亚州帕洛阿尔托,1989年7月·Zbl 0837.68061号
[16] Dhara,K.K.:面向对象编程语言中可变类型的子类型。爱荷华州立大学计算机科学系硕士论文,爱荷华州艾姆斯,1992年
[17] Dhara,K.K.,Leavens,G.T.:面向对象编程语言中可变类型的子类型技术报告92-36,爱荷华州立大学计算机科学系,爱荷华州艾姆斯,500112992年。可通过匿名ftp从ftp.cs.iastate.edu获取,也可通过电子邮件从almanac@cs.iastate.edu
[18] Ehrig,H.,Mahr,B.:代数规范基础1:方程和初始语义。EATCS理论计算机科学专著。纽约州施普林格,1985年·Zbl 0557.68013号
[19] Enderton,H.B.:逻辑数学导论。学术出版社,佛罗里达州奥兰多,1972年·Zbl 0298.0202号
[20] Goguen,J.A.:参数化编程。IEEE软件工程学报,SE10(5):528–5431984·Zbl 0545.68017号 ·doi:10.1109/TSE.1984.5010277
[21] Goguen,J.A.,Meseguer,J.:有序代数解决了构造函数-选择器、多重表示和强制问题。技术报告CSLI-87-92,语言和信息研究中心,1987年3月。出席第二届计算机科学逻辑年度研讨会,1987年,纽约州伊萨卡,第18-29页·Zbl 0796.68144号
[22] Goldberg,A.,Robson,D.:Smalltalk-80,语言及其实现。Addison-Wesley出版公司,雷丁,马萨诸塞州,1983年·Zbl 0518.68001号
[23] Gratzer,G.:泛代数。施普林格,纽约州纽约市,第二版,1979年
[24] Guttag,J.V.,Horning,J.J.,Wing,J.M.:落叶松的五个简单片段。技术报告5,数字设备公司,系统研究中心,130 Lytton Avenue,Palo Alto,CA 943011985年7月。订单来自src-report@src.dec.com
[25] Guttag,J.:关于类型抽象的注释(第2版)。IEEE软件工程学报,SE6(1):13-231980。《可靠软件程序规范》第1版,马萨诸塞州剑桥,IEEE,1979年4月·doi:10.1109/TSE.1980.230209
[26] Guttag,J.V.、Horning,J.J.、Garland,S.、Jones,K.、Modet,A.、Wing,J.:《Larch:形式规范的语言和工具》。纽约州施普林格,1993年
[27] Guttag,J.V.、Horning,J.J.、Modet,A.:《落叶松共享语言报告:2.3版》。技术报告58,数字设备公司,系统研究中心,130 Lytton Avenue,Palo Alto,CA 94301,1990年。订单来自src-report@src.dec.com
[28] Guttag,J.V.、Horning,J.J.、Wing,J.M.:规范语言的落叶松家族。IEEE软件,2(4),1985
[29] Hoare,C.A.R.:关于数据结构的注释。摘自:Ole-J.Dahl,E.D.,Hoare和C.A.R.(编辑)结构化编程,第83-174页。学术出版社,纽约,1972年
[30] LaLonde,W.R.:使用示例设计数据类型族。ACM编程语言和系统汇刊11(2):212-2481989·数字对象标识代码:10.1145/63264.63265
[31] LaLonde,W.R.,Thomas,D.A.,Pugh,J.R.:基于范例的Smalltalk。ACM SIGPLAN通知,21(11):322–3301986年。《OOPSLA’86年会议记录》,Norman Meyrowitz(ed),1986年,俄勒冈州波特兰·doi:10.1145/96011.28729
[32] Lamping,J.:键入专业化界面。ACM SIGPLAN通知28(10):201–2141993。《OOPSLA’93诉讼》,Andreas Paepcke(ed)·数字对象标识代码:10.1145/167962.165891
[33] Lamport,L.:指定并发系统的简单方法。ACM32通信(1):32-451989·数字对象标识代码:10.1145/63238.63240
[34] Leavens,G.T.:具有子类型的面向对象程序的模块化验证。技术报告90-09,爱荷华州立大学计算机科学系,爱荷华州艾姆斯,500112990年。可通过匿名ftp从ftp.cs.iastate.edu获取,也可通过电子邮件从almanac@cs.iastate.edu
[35] Leavens,G.T.:面向对象程序的模块化规范和验证。IEEE软件8(4):72–801991·数字对象标识代码:10.1109/52.300040
[36] Leavens,G.T.,Pigozzi,D.:用亚型扩展的类型同态关系。技术报告91-14,爱荷华州艾姆斯爱荷华州立大学计算机科学系,邮编:500111991,发表于《程序设计语义的数学基础》91,Springer,计算机科学讲义,第598卷,第144-167页,1992年
[37] Leavens,G.T.,Pigozzi,D.:随亚型扩展的类型同态关系。在:Brookes,S.(编辑)《编程语义学的数学基础》91,《计算机科学讲义》第598卷,第144–167页。施普林格,纽约州纽约市,1992年
[38] Leavens,G.T.,Weihl,W.E.:关于使用子类型的面向对象程序的推理(扩展抽象)。ACM SIGPLAN通知,25(10):212–2231990年。OOPSLA ECOOP’90诉讼,N.Meyrowitz(ed)·数字对象标识代码:10.1145/97946.97970
[39] Leavens,G.T.,Weihl,W.E.:应用面向对象程序的子类型、模块规范和模块验证。《技术报告92-28d》,爱荷华州立大学计算机科学系,爱荷华州艾姆斯,500112994年。可通过匿名ftp从ftp.cs.iastate.edu获取,也可通过电子邮件从almanac@cs.iastate.edu
[40] Leavens,G.T.:验证使用子类型的面向对象程序。《技术报告439》,麻省理工学院计算机科学实验室,1989年2月。作者的博士论文
[41] Lieberman,H.:使用原型对象实现面向对象系统中的共享行为。ACM SIGPLAN通知21(11):214–2231986。《OOPSLA’86年会议记录》,Norman Meyrowitz(ed),1986年,俄勒冈州波特兰·数字对象标识代码:10.1145/96011.28718
[42] Liskov,B.:数据抽象和层次结构。ACM SIGPLAN通告23(5):17-341988。87年OOPSLA主题演讲的修订版·数字对象标识代码:10.1145/62139.62141
[43] Liskov,B.,Guttag,J.:程序开发中的抽象和规范。麻省理工学院出版社,剑桥,马萨诸塞州,1986年·Zbl 0644.68001号
[44] Liskov,B.,Wing,J.M.:亚型关系的新定义。在Nierstrasz,O.M.(编辑)ECOOP’93面向对象编程,第7届欧洲会议,德国凯泽斯劳滕,计算机科学讲义第707卷,第118-141页。纽约州施普林格,1993年
[45] Liskov,B.,Wing,J.M.:规范及其在定义子类型中的使用。ACM SIGPLAN通知28(10):16-281993年。《OOPSLA’93诉讼》,Andreas Paepcke(ed)·数字对象标识代码:10.1145/167962.165863
[46] Loeckx,J.、Sieber,K.:程序验证的基础(第二版)。约翰·威利父子公司,纽约,1987年·Zbl 0625.68017号
[47] Meyer,B.:面向对象的软件构造。Prentice Hall,纽约州纽约市,1988年·Zbl 0719.68012号
[48] 梅耶,B.:埃菲尔:语言。面向对象系列。普伦蒂斯·霍尔,纽约,1992年·Zbl 0779.68013号
[49] Mitchell,J.C.:表示独立性和数据抽象(初步版本)。摘自:佛罗里达州圣彼得堡海滩第十三届美国计算机学会编程语言原则年会会议记录,第263-276页。ACM,1986年1月
[50] Mitchell,J.C.:类型化编程语言的Lambda微积分模型。麻省理工学院博士论文,1984年8月
[51] Nipkow,T.:非确定性数据类型:模型和实现。信息学报22(16):629–6611986·Zbl 0564.68013号 ·doi:10.1007/BF00263649
[52] Nipkow,T.:非确定性数据类型的行为实现概念。曼彻斯特大学博士论文,1987年5月·Zbl 0616.68019号
[53] Reynolds,J.C.:使用范畴理论设计隐式转换和泛型算子。摘自:Jones,N.D.(ed)《语义导向编译器生成》,研讨会论文集,丹麦奥胡斯,计算机科学讲稿第94卷,第211-258页。施普林格,1980年
[54] Reynolds,J.C.:类型结构的三种方法。发表于:Ehrig,H.,Floyd,C.,Nivat,M.,Thatcher,J.(编辑)《软件开发的数学基础》,《软件开发理论与实践国际联合会议(TAPSOFT)论文集》,柏林。第1卷:代数与编程中的树讨论会(CAAP’85),计算机科学课堂讲稿第185卷,第97-138页。施普林格,纽约州,纽约州,1985年
[55] Schaffert,C.、Cooper,T.、Bullis,B.、Kilian,M.、Wilpolt,C.:《格子/猫头鹰简介》。ACM SIGPLAN通知21(11):1986年9月16日。《OOPSLA’86年会议记录》,Norma Meyrowitz(ed),1986年,俄勒冈州波特兰·数字对象标识代码:10.1145/96011.28699
[56] Schmidt,D.A.:指称语义学:语言发展的方法论。Allyn and Bacon,Inc.,马萨诸塞州波士顿,1986年
[57] Schoett,O.:数据表示的行为正确性。计算机程序科学14(1):43-571990·Zbl 0699.68031号 ·doi:10.1016/0167-6423(90)90057-K
[58] Snyder,A.:面向对象编程语言中的封装和继承。ACM SIGPLAN通告21(11):38-451986。《OOPSLA’86年会议记录》,Norman Meyrowitz(ed),1986年9月,俄勒冈州波特兰·doi:10.1145/960112.28702
[59] Statman,R.:逻辑关系和类型化{\(lambda\)}演算。信息与控制65(2/3):85–971985·兹比尔0594.03006 ·doi:10.1016/S0019-9958(85)80001-2
[60] Stein,L.A.、Lieberman,H.、Ungar,D.:分享的共同观点:《奥兰多条约》。收录:Kim,W.,Lochovsky,F.H.(编辑)《面向对象的概念、数据库和应用》,第3章,第32-48页。Addison-Wesley出版公司,马萨诸塞州雷丁,1989年
[61] Utting,M.:一个具有模块化推理的面向对象的精化微积分。新南威尔士大学博士论文,澳大利亚肯辛顿,1992年。1992年2月从作者处获得的草案
[62] Utting,M.,Robinson,K.:面向对象精化演算中的模块化推理。收录于:Bird,R.S.,Morgan,C.C.,Woodcock,J.C.P.(编辑)《程序构建数学》,第二届国际会议,英国牛津,计算机科学讲稿第669卷,第344-367页。施普林格,纽约州纽约市,1992年
[63] Wing,J.M.:编写Larch接口语言规范。美国计算机学会程序设计语言与系统汇刊9(1):1–241987·Zbl 0627.68014号 ·数字对象标识代码:10.1145/9758.10500
[64] Wing,J.M.:指定程序的双层方法。技术报告TR-299,麻省理工学院计算机科学实验室,1983年
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。