×

按对象组合进行委派。 (英语) Zbl 1217.68047号

概述:基于类的标准语言提供的类继承和方法重写通常不够灵活,无法用一些动态行为表示对象。在这方面,配备不同形式的方法体查找的对象组合通常被提倡作为类继承的更灵活的替代方法,因为它是在运行时进行的,因此允许动态专门化对象的行为。本文介绍了不完全羽量级Java(IFJ),它是羽量级Java的一个扩展,具有一种新的语言结构,即不完全对象。不完整的对象需要一些缺失的方法,可以在运行时通过与另一个(完整)对象组合来提供这些方法。此外,我们还提出了两种在(组合)对象上查找方法体的机制,一种是基于委托的,另一种是根据协商的。由于语言的设计,基于咨询的查找是基于委托的查找的简单扩展。这两种机制都由静态类型控制,因此该语言具有类型安全性(这意味着没有“消息未被理解”的运行时错误),并避免了由于方法名称冲突而可能发生的意外覆盖。

MSC公司:

68甲15 编程语言理论
第68页第19页 其他编程范式(面向对象、顺序、并发、自动等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] M.阿巴迪。;Cardelli,L.:对象理论(1996)·Zbl 0876.68014号
[2] 安德森,C。;巴巴内拉,F。;Dezani-Ciancaglini,M。;Drossopoulou,S.:地址可以是类型吗?(案例研究:委托对象),Entcs 82(8),1-22(2003)
[3] 巴布,C。;Janakiram,D.:方法驱动模型:对象组合语言的统一模型,ACM SIGPLAN通知39,第8期,61-71(2004)
[4] C.Babu,W.Jaques,D.Janakiram,DynOCoLa:实现对象行为的动态合成,见:Proc。《软件进化的反思、AOP和元数据研讨会》,RAM-SE,2005年。
[5] 巴多尼,M。;波埃拉,G。;Van Der Torre,L.W.N.:powerjava中对象之间的交互,对象技术杂志6,第2期(2007年)
[6] 贝蒂尼,L。;Bono,V.:基于类的语言中的类型安全动态对象委托,171-180(2008)
[7] 贝蒂尼,L。;波诺,V。;Likavec,S.:《具有子类型的安全灵活物体》,《物体技术杂志》10,第4期,5-29页(2005年)·Zbl 1171.68413号
[8] 贝蒂尼,L。;波诺,V。;Turin,E.:I-Java:具有不完整对象和对象组合的Java扩展,Lncs 5634,27-44(2009)
[9] 贝蒂尼,L。;波诺,V。;Venneri,B.:子类型继承冲突:移动mixin案例(2004)·Zbl 1088.68529号
[10] 贝蒂尼,L。;波诺,V。;Venneri,B.:类Java语言中的对象不完整性和动态合成,Lnbip 11,198-217(2008)
[11] 贝蒂尼,L。;卡佩基,S。;Giachino,E.:Featherweight wrap Java:包装对象和方法,对象技术杂志7,第2期,5-29(2008)
[12] 波诺,V。;Bugliesi,M。;Dezani-Ciancaglini,M。;Liquori,L.:可扩展、不完整对象的子类型,Fundamenta informaticae 38,No.4,325-364(1999)·Zbl 1040.03506号
[13] G.Bracha,编程语言Jigsaw:混合、模块化和多重继承。犹他大学博士论文,1992年。
[14] Bruce,K.:面向对象语言的基础——类型和语义,(2002)
[15] Castagna,G.:面向对象编程:统一基础(1997)·Zbl 0871.68024号
[16] 钱伯斯,C.:塞西尔面向对象的多方法,Lncs 615,33-56(1992)
[17] Crawford,D.:《ACM档案的传播——面向方面编程专题》,《ACM存档的传播——关于面向方面编程的专题》44(2001)
[18] 杜卡斯,S。;O.尼尔斯特拉斯。;Schärli,北卡罗来纳州。;Wuts,R。;Black,A.:特性:细粒度重用机制,编程语言和系统上的ACM事务28,第2期,331-388(2006)
[19] E.Ernst,gbeta–一种具有虚拟属性、块结构和传播、动态继承的语言。丹麦奥胡斯大学计算机科学系博士论文,1999年。网址:网址:http://www.daimi.au.dk/eernst/gbeta/。
[20] Fisher,K。;Honsell,F。;Mitchell,J.C.:对象和方法专门化的lambda-calculus,《北欧计算杂志》1,第1期,第3-37页(1994)·Zbl 0886.03010号
[21] Fisher,K。;Mitchell,J.C.:基于委托的子类型对象演算,Lncs 965,42-61(1995)
[22] 伽玛,E。;赫尔姆·R。;约翰逊,R。;Vlissides,J.:《设计模式:可重用面向对象软件的元素》,(1995)·Zbl 0887.68013号
[23] Goldberg,A。;Robson,D.:Smalltalk 80:语言(1989)·Zbl 0813.68072号
[24] Herrmann,S.:上下文角色的精确模型:编程语言对象团队/Java,应用本体2,第2期,181-207(2007)
[25] Igarashi,A。;皮尔斯,B。;Wadler,P.:Featherweight Java:Java和GJ的最小核心演算,ACM编程语言和系统事务23,第3期,396-450(2001)
[26] Kniesel,G.:运行时组件自适应的类型安全授权,Lncs 1628,351-366(1999)
[27] Kochan,S.:《objective-C 2.0中的编程》(2008)
[28] Kristensen,B.B。;瑟斯特拜,K.:《角色:概念抽象理论和实践语言问题》,对象系统理论与实践2,第3期,143-160(1996)
[29] Lieberman,H.:使用原型对象实现面向对象系统中的共享行为,ACM SIGPLAN注意到21,No.11,214-223(1986)
[30] 尼尔森A.B。;Ernst,E.:在静态类型语言中优化动态类组合,Lnbip 11,161-177(2008)
[31] Pierce,B.C.:类型与编程语言,(2002)·Zbl 0995.68018号
[32] Riecke,J。;Stone,C.:《通过包容的隐私,信息和计算》172,2-28(2002)·Zbl 1009.68022号 ·doi:10.1006/inco.2000.2925
[33] Riel,A.J.:面向对象的设计启发式,(1996)
[34] Steimann,F.:《面向对象和概念建模中角色的表示》,《数据知识工程》35,第1期,83-106(2000)·Zbl 0948.68053号 ·doi:10.1016/S0169-023X(00)00023-9
[35] Taivalsaari,A.:关于继承的概念,ACM计算调查28,第3期,438-479(1996)
[36] Ungar,D。;Smith,R.B.:《自我:简单的力量》,ACM SIGPLAN第22期,第12期,227-242页(1987)
[37] J.Viega,B.Tutt,R.Behrends,自动化委托是基于类的语言中多重继承的可行替代方案。技术报告CS-98-03,UVa计算机科学,1998年。
[38] Wright,A。;Felleisen,M.:《类型稳健性、信息和计算的句法方法》115,第1期,38-94(1994)·兹比尔0938.68559 ·doi:10.1006/inco.1994.1093
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。