对象代理程序设计语言研究

来源 :武汉大学 | 被引量 : 0次 | 上传用户:gu22540
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
OOP语言虽然为提高软件模块化程度发挥了极大作用,但其局限性也越来越多地受到关注,它们大多都是由于其数据封装所导致的对象灵活性缺失而造成的。为了解决这些问题,研究人员逐渐设计开发了一些新的程序设计语言,例如基于角色模型的程序设计语言、面向方面程序设计语言、动态程序设计语言等等。这些语言拥有各自不同的功能特征和运行机制,能够分别改善传统OOP语言的若干局限,但各自独立的编程模型又为开发人员的使用带来了不便。我们希望能够基于一种统一的编程模型来改善OOP模型中的局限性,使得程序设计语言能够更加强大、灵活、动态。对象代理模型是一种在面向对象系统中融入了代理机制的数据模型,它在对象创建、操纵、组合等方面所表现出的多样性和灵活性正好可以作为这样一种底层模型,为我们所期望的语言功能提供一种统一的功能框架或运行基础。本文对基于对象代理模型的程序设计语言ODPL的设计和实现进行了深入研究,其中研究的内容和创新工作主要包括以下几个方面。(1)将对象代理模型从数据库领域移植到程序设计领域对象代理模型用于改善面向对象数据库领域对复杂数据的建模、存储、查询等需求,增强了复杂数据的表现多样性和灵活性。本文基于对象代理模型的功能特征,结合OOP领域的技术现状,将该模型应用于程序设计领域,设计实现了对象代理语言ODPL。该语言能够改善由于OOP模型的数据封装性所导致的对象灵活性缺失问题,能够更好地满足应用开发中的动态性需求。在ODPL中,代理类能够以不同的代理语义与源类形成代理继承关系,由此形成的类层次体系可以表达丰富的类间关联,适应更加多样化的应用场景。选择型代理类能够为满足特定条件的源对象创建代理对象,为其扩展或屏蔽指定的属性或方法,不但能实现OOP模型中的父子继承机制,还提供了更强的动态性和灵活性。联合型代理类能够同时为多个源类扩展相同的行为,改善了OOP模型中只能自上而下逐层特化的开发模式。连接型代理类用于连接两个或多个源类,其实例可以用来表达多个源对象之间的关联关系,而OOP模型却没有相应的程序实体来对对象间关联进行直接建模。分组型代理类则为对象集合提供了统一的管理和操作界面,对分组成员的维护和访问可以借助分组型代理类的实例来自动完成,简化了程序的开发工作。ODPL可以看做是基于角色模型或AOP的程序设计语言,运用其中各种类型的代理类能够提供角色模型或AOP的很多功能特征,这也使其应用范围能够得到进一步的扩展。(2)针对对象代理模型的功能进行了强化和扩充结合实际应用的需要,在ODPL的设计实现过程中,针对对象代理模型的部分功能进行了强化和扩充。首先,在代理对象自动创建机制的基础上强化了自动销毁机制,将创建条件与销毁条件相分离,使得代理对象可以在一个有效地条件区间内存在。其次,代理对象创建条件和销毁条件的分离也使得代理对象的手工和自动创建方式得到综合统一,自动创建的代理对象能够手工销毁,而手工创建的代理对象也能够被系统自动销毁,这使得能够更加灵活地控制代理类的使用。另外,ODPL还实现了源类与代理类的融合操作,如果一个源类拥有多个处于同一级别的直接代理类,可以通过融合操作使其中某个代理类与源类之间具有比其它代理类更为紧密的逻辑关联,就好像直接把代理类的功能插入到源类中去一样,使它们在逻辑上合并为一个类。(3)提出了基于前置对象机制的ODPL运行时结构现有角色模型以及AOP语言的实现大多是在现有OOP语言的基础上进行语法层面的改造和扩充,OOP语言的运行时结构并不能对这些语言的功能提供直接支持。我们在ODPL的设计实现中提出了基于前置对象机制的运行时结构,对象间的消息能够通过前置对象得到传递,使得系统能够正常运行。前置对象机制的优点在于,ODPL中所需的各种动态功能和消息响应机制能够从机器模型的层面上得到直接支持,程序中所涉及的一些新概念和程序结构不再需要在运行时映射转换为OOP模型中的底层结构。前置对象机制还为源类与代理类的融合提供了简洁方便的实现,不但可以实现源类与代理类的融合,还可以快捷地进行反向操作以解除融合。融合操作过程只需通过简单的指针操作来完成,并不需要改变任何源代码,也不需要执行复杂的动态重编译就可以高效地执行,进一步增强了程序的动态性和灵活性。这种运行时结构可以作为角色模型或AOP语言的统一底层实现机制,为这类语言提供强大的动态性和灵活性,并降低语言实现的难度。(4)详细制定了ODPL的语法规范和语义描述本文还详细制定了ODPL的语法规范及其语义描述。从语法上看,ODPL源程序代码保持了标准的Java语法,并采用Java 5中的标注机制来描述代理类的各种代理信息,这样就不需要在Java语言中增加专门的关键字或语法模块来表达ODPL中新增的概念和结构,简化了新语言的实现难度。另外,ODPL中的大量操作都是基于源对象与代理对象之间的双向指针执行的,为了准确表述相关功能机制,我们对语言中的环境状态、对象检索、消息传递、类型匹配等操作都力图给出准确的形式化描述。由于操作语义独立于语法结构,因此也可以在本文所描述的操作语义基础上,将ODPL移植到其它语言平台上,甚至可以针对ODPL设计一套全新的语法结构。
其他文献
<正>1甲状腺肿瘤的流行病学甲状腺肿瘤在人类肿瘤类型中并不常见,但在内分泌系统中是最常见的肿瘤。其中90%为分化型甲状腺癌(DTC),它又包括甲状腺乳头状癌(PTC)、滤泡癌(FTC
<正>中国铁路坚持加快建设铁路网的发展方向,大力推进铁路投融资体制改革,拓宽多种筹资渠道,提高利用外资的规模和水平。外资对中国铁路的这些举措有何反应?前不久,记者专访
介绍了配合内外辅巷多通道回撤工艺研制的快速搬家成套支护装备的组成和特点,实际应用表明,该装备极大地缩短了综采工作面回撤与安装时间,减少了木材消耗,实现了回撤工作面顶
目的研究p16基因甲基化在乳腺癌中的分布情况,并探讨其与乳腺癌发生、发展的关系。方法采用甲基化特异的PCR技术检测四川省肿瘤医院乳腺科2008年3~9月期间收治的38例原发性乳
目的评价超声造影对乳腺癌腋窝前哨淋巴结(SLN)的临床诊断价值。方法本研究共纳入72例临床体检腋窝淋巴结阴性的确诊为乳腺癌的手术患者,均术前单独采用注射用六氟化硫微泡(S
目的总结乳腺癌前哨淋巴结活检(SLNB)的研究现状和进展。方法复习近年来国内外的相关文献,对乳腺癌SLNB的概念、适应证、活检技术、提高检出准确率的方法、病理学检查方法、
<正>一、荷兰农业现状荷兰农业取得的成就举世瞩目,可以说荷兰农业的现代化是全方位的现代化。荷兰农业的成功不仅有政府政策的支持、优先的发展战略以及良好的基础设施,更重
介绍一种用于高温气体净化的实用新型的玻璃钢洗涤器,筒体及顶盖皆为玻璃钢制,耐高温耐稀酸腐蚀的进气管采用碳钢衬铅再衬耐酸瓷砖,用非金属伸缩节将进气管与玻璃钢筒体连接,
以陈凯歌导演的短片《百花深处》中北京四合院与胡同拆迁事件作为切入点,对作品的叙事主题及隐喻象征系统进行分析与解码,分析该片中导演对音响和音乐元素的表现和使用,试图
宗教的文化心理学基于文化心理学的视角,对人类复杂的宗教现象进行研究,特别对引起、促进和构成人类的主观性和精神功能的文化机制进行探索。宗教是人类文化发展到一定历史阶