一、数据抽象和抽象数据类型在OOP中的作用(论文文献综述)
王泽梁,汪丽华[1](2019)在《基于CBE的软件工程专业OOP与DS教学有机结合研究》文中进行了进一步梳理在回顾软件工程专业设置历史的基础上,指出新时期软件工程专业教学改革的迫切形势,并针对基于能力导向的教学模式提出教学改革途径。首先,通过对传统教学模式不足的分析,以面向对象程序设计与数据结构课程为例,概括二者间的内在联系;其次,结合实例提出相关课程有机结合的教学方法与增设模块化课程综合设计环节的思路,并给出实施方案;最后,指出软件工程专业课程体系建设的延伸方向。
代浩翔[2](2019)在《高动态无人机多跳网络鲁棒资源分配》文中研究说明无人机多跳网络是一种无人机作为网络节点的特殊移动自组织网络,无人机的自由高速移动、三维空间分布等特征,造成无人机多跳网络面临着网络拓扑频变、节点超密集、干扰环境复杂、节点获取信息不完全等新的问题。一方面,节点高动态导致网络拓扑频变,数据包发生冲突和丢失的概率增大,然而现有MAC协议在设计时很少考虑到节点高移动性给网络性能带来的影响;另一方面,无人机节点能量有限,需要一种有效提升节点能量效率的功率控制方法。相比于地面二维空间,无人机的三维空间分布使单个节点周围分布的节点更多,造成网络密集化,网络中的干扰环境更加复杂,传统方法设计功率控制策略在获取相关干扰信息时会造成节点间的大量信息交互,并且节点高速移动造成无线信道剧烈波动以及节点本身存在估计误差和信道状态信息量化噪声等,使得反馈理想信道状态信息非常困难,因此节点获取的信道状态等信息具有不确定性,如果不考虑这种不确定性,可能导致功率控制的结果在实际系统中无法使用,因此需要设计一种低开销的具有鲁棒性的功率控制方案来提升节点的能量效率。因此传统移动自组织网络中的资源分配方案在无人机多跳网络场景中不能直接适用,因此亟待研究一种能够适用于该场景的资源分配方案。首先,本文针对无人机多跳网络中数据包冲突概率高、信令开销大和干扰关系复杂等问题,联合物理层功率分配和MAC层时隙分配研究了一种具有鲁棒性的的资源分配方案,建立了无人机多跳网络跨MAC层和物理层的跨层资源分配的能量效率优化模型,接着为了方便求解,利用原始分解法将该优化问题分解为MAC层时隙分配子问题和物理层功率控制子问题。然后,针对MAC层时隙分配子问题,本文分析了主要造成数据包冲突和丢失的场景,结合无人机能够通过GPS获取自身位置信息的特点,利用跨层思想使MAC层跨层利用物理层反馈的位置信息,提出了一种有效降低数据包冲突和丢失概率的动态位置预测时隙分配方案(Dynamic Location Prediction Time Division Multiple Address,DLP-TDMA)。在时隙分配确定的情况下,本文利用平均场博弈模型能够有效建模大量博弈者交互场景的特性,提出了一种低信令开销的功率控制算法,每个节点在自身分配的时隙中利用功率控制算法有效提升能量效率。最后,介绍了本文搭建的MATLAB无人机多跳网络仿真平台的功能和基本实现流程,进而在仿真平台中验证了所提算法的性能,仿真结果表明,本文提出的时隙分配和功率控制算法能够有效降低网络丢包率、冲突概率,以及有效提升网络能量效率。
江东明[3](2017)在《Apla+语言的云服务交互机制的研究》文中研究说明作为云计算和服务计算的结晶,云服务通过云计算方式(如SaaS或PaaS等)提供服务集成和价值增值功能,以满足用户多元化的业务需求。云服务组合功能是通过多个云服务交互协作而实现,所以云服务交互是其组合的基础;而交互机制负责整个云服务系统中各组件通信和协作,是系统神经中枢,直接影响云服务系统性能。由于云服务具有分布性、并发性和容错性,因此如何设计与开发云服务交互机制是云服务研究中一个挑战性问题。当前云服务交互机制研究主要存在三点不足之处:其一,缺乏合适的交互设计模型来抽象和封装云服务并发交互特性。其二,针对于云服务并发交互特性,目前还没有从状态和资源两个方面综合性考量并发控制设计及其算法。也没考虑云服务容错和选择之间的互补特性,未充分发掘云计算资源在线整合潜能。其三,尚没有合适的语言机制来刻画云服务会话交互特性,并加以编程实现。针对上述问题,本文从设计模型、交互机制、语言机制和模型驱动开发四个方面深入研究了云服务交互机制设计及开发,提出面向云服务交互的会话模型,设计面向云服务并发交互的Apla+会话机制,扩展Apla+中面向会话编程的语言机制,并构建了面向会话编程的模型驱动开发框架。本文具体研究从以下四个层次展开研究。(1)面向云服务交互的会话模型。本文首先探讨云服务的交互特性,研究并归纳了云服务交互的层次和类型。针对云服务并发交互特性,本文引入了会话(session)概念,并作为描述和封装交互行为的基本单元。在此基础上,本文提出面向云服务交互的设计模型SCSM(Session-based Cloud Service Model),系统阐述交互各个组成要素及其之间关联。相比于其他设计模型,会话模型综合考虑了云服务并发、分布和容错特性,并分别提炼了会话、角色和资源池概念,为语言机制设计提供了抽象模型。(2)面向云服务交互的Apla+会话机制设计。有鉴于云服务系统的并发、分布和容错需求,本文提出新颖的Apla+会话机制,融合了调用、并发管理和容错选择等协议。根据云服务并发交互特性,本文从状态共享和资源竞争两个角度提出了综合性的并发管理协议,保证了云服务并发交互正确性和数据一致性。基于资源导向分解策略,会话机制中选择协议将云服务选择问题转换成拉格朗日对偶问题加以处理。仿真实验表明在相同迭代次数条件下,新算法较原方法在最优解方面至少提升了 6.5%。而容错机制结合了云服务选择协议,提出轻量级事务化容错策略,为云服务交互容错处理开辟一种新思路。对比与其他交互机制,Apla+会话交互机制提供更好的云服务交互安全性保障措施和更为灵活的容错机制。(3)面向云服务会话的Apla+程序设计。针对于面向云服务交互的语言机制设计需求,在Apla+的并发算子基础上,本文提出了面向云服务会话的Apla+程序设计。结合Apla+语言的函数式并发机制,Apla+会话编程可以结构化描述服务并发交互行为。考虑到云服务数据流和容错处理需求,Apla+会话编程扩展了多种函数式组合算子。为精确定义Apla+会话编程执行过程,本文应用会话类型定义了其类型系统,包括类型推导规则和子类型规则;还证明会话程序具备类型安全特性。相较于其他交互机制开发语言,由于具有多范型特性和函数式组合算子,Apla+可以用一种简洁方式来描述复杂的云服务并发交互过程。(4)构建云服务交互机制的模型驱动开发框架。借鉴于模型驱动开发思想,本文设计与实现了云服务交互机制开发框架。为此,本文实现了 Apla+会话编程的支撑平台,为交互机制开发提供了编译框架,可以提供一站式交互机制的开发解决方案。并且,本文将Apla+会话编程应用于多个典型云服务交互案例中,验证了 Apla+会话编程的开发效率和Apla+会话机制的高并发性能。
易顺[4](2016)在《面向方面编程中可复用方面库的构建及其应用研究》文中研究指明面向方面编程(AOP)为模块化封装横切关注点提供了很好的支持。在面向对象编程(OOP)中,为了提高软件开发效率,开发者需要更多的使用可复用的库,在AOP中也不例外。要开发出可复用的方面库仍然是一个挑战,这是由于方面程序和主程序之间存在着很强的耦合。一些针对某一特定横切关注领域,如:安全、并发、持久化、事务等的可复用方面已经被研究者提出。但对于可广泛应用的可复用方面库的设计方法的研究还不足。目前关于如何对封装了横切关注点的方面进行有效的描述、管理和检索复用等操作以达到高效复用方面的问题研究并没有得到足够重视。本文对面向方面编程中可复用方面库的构建现状进行了研究分析,从特定横切关注领域的方面库构建和方面库构建模式和规则两个角度,介绍了现有方面库研究,并分析了现有方法的不足。本文详细研究分析了现有五种典型的实现不同横切功能的方面库实现,并从通用性、易用性、依赖语言、复用机制和工具支持这五个方面对它们进行了详细的比较分析。本文提出了一种可复用方面库的构建方法。该方法主要包括方面库设计元模型,方面库描述模型和基于AspectJ的可复用方面定义方法三部分内容,为开发者提高方面库复用性提供支持。基于该方法,本文设计并实现了方面库管理工具,该工具主要提供方面库的基本管理、可复用方面查询和自动生成具体方面的功能。本文以信息管理系统和设计模式为例,基于本文提出的可复用方面库构建方法构建方面库,进行了实例应用。本文的研究成果为开发者在面向方面编程中,提供了一个有效开发,管理,以及检索复用可复用方面资源的方法。
刘德财[5](2016)在《基于函数式编程语言的设计模式研究》文中指出函数式编程语言(Functional Programming Language,下文简称FP语言)是软件工程界的热点研究问题之一,并已在业界广泛使用。然而目前在FP项目的实际开发中,有些FP语言使用者认为设计模式的概念有缺陷,在FP项目中并不需要,同时有些FP使用者认为设计模式还是需要的,但是在具体设计和实现中仅仅是生搬硬套传统OOP的设计模式,把FP语言强制模仿成OOP语言来使用,丢失了FP语言的许多优秀特性,增加了设计模式的实现成本,从而使得OOP的设计模式在FP语言中并没用得到很好的实现和利用。本文针对以上认识误区,对FP语言的设计模式问题进行了以下主要研究:(1)提出在FP领域,传统OOP设计模式通常的三种表现形式:①模式由FP语言吸收;②模式是FP语言中独有的;③模式仍然存在于FP语言中,但是设计思路和实现细节有所不同,并可以有所改进。(2)对于第①种表现形式,研究和设计了三种模式:工厂模式、迭代器模式和命令模式。这类模式已由FP语言吸收,通过FP语言的某一特性可以很容易实现。(3)对于第②种表现形式,通过充分利用FP语言高阶函数和闭包特性,设计并实现了模块模式,该模式具有简单易用以及优良的移植性和复用性等优点。(4)对于第③种表现形式,通过改进OOP观察者模式,设计并实现了发布-订阅模式,同时设计了维护订阅信道的数据结构以及维护订阅操作码的AR算法。发布-订阅模式充分发挥了FP语言的模块化和高阶函数特性,解决了OOP观察者模式中存在的不能循环依赖、无法附带数据、过度暴露被观察者以及增删观察者动作不合理等问题,同时具有文件代码100%可复用的优势。(5)对于第③种表现形式,通过改进OOP事件驱动模型,设计并实现了基于FP语言的事件驱动模型,并将此模型提炼成一个独立的具有八个方法的文件。本文的事件驱动模型充分利用了FP语言的lambda表达式、高阶函数以及闭包等特性,解决了OOP事件驱动模型中存在的设计复杂、代码瓶颈隐患等问题,保留了传统OOP模式的优点,还具有简单易用、代码100%可复用以及扩展功能等优势。(6)通过将本文设计并实现的模块模式、发布-订阅模式和事件驱动模型应用在移动游戏项目实例中,佐证本文所设计和实现模式的优势。
雷天洋[6](2016)在《面向数据密集计算的Java虚拟机性能分析与优化》文中研究说明“大数据”时代的到来对于应用进行海量数据处理带来了新的挑战。为此,学术界与工业界设计与实现了多个大数据处理框架以简化大数据处理。为了编程的便捷性与系统的稳定性,当前主流的大数据处理框架如Spark,Hadoop等均使用管控式语言如Scala、Java等进行编程。然而,由于Java虚拟机(JVM)等管控式语言运行时环境需要进行数据抽象、内存管理等,通常对于大数据应用带来了较大的性能开销。同时,由于JVM等提供的额外数据抽象增加了大数据应用与硬件间的语义鸿沟,也使得大数据运行时不能充分挖掘硬件提供的并行性。具体而言,本文在分析以上Java虚拟机以及数据密集型应用运行的过程中,发现了三个不足点:1.为了支持垃圾回收,JVM为运行时代码添加了额外的指令开销。分代式垃圾回收在对年轻代进行回收时,需要遍历老年代到年轻代的引用。这个引用是通过卡表的数据结构完成的。而在程序运行过程中,Java虚拟机需要插入额外的写屏障代码完成卡表操作。2.Java对象布局上存在一些额外开销。为了支持Java虚拟机上的类型安全、垃圾回收等特点,Java对象在布局上需要一个对象头来完成功能。而这个对象头在不使用时将对对象数据的局部性以及访存性能造成影响。3.即时编译器的优化限制性,语义识别不够,不能为上层大数据应用提供较多优化。并且,在Spark框架中,操作还是基于单个元素;不能高效地针对大数据场景进行扩展,也不能使编译器挖掘更多语义进行优化。针对上述问题,本文提出了三个相应的解决方案:1.基于硬件虚拟化技术消除写屏障的额外指令开销。该方案利用垃圾回收中卡表功能与页表功能的相似性。利用硬件虚拟化中客户页表的支持,将页表复用为卡表结构。因此在原有垃圾回收读卡表时,只需要读取页表脏位即可。而由于页表是通过硬件维护,Java虚拟机不再需要生成写屏障。可以在应用运行时省去执行屏障的开销。2.分离式对象内存布局。该布局将对象头和对象数据分开分配在堆中,这样对象头将对对象数据的读写没有直接影响。本文提出了三种运行时对象数据获取方法,并以性能为考量选取其中一种进行实现。使用这种方式,对象数据访问将没有额外开销。当应用只需要使用对象数据时,可以提升对象数据的内存局部性,整体提升访存性能。为了处理分离式对象和正常对象的混合情况,Java堆也被分为正常对象区域和分离式区域,存放对应的对象。3.针对大数据机器学习框架提出超向量的运行时技术。该数据抽象将多个向量聚合在一起,并提供粗粒度的超向量操作。在此基础上,新提供的操作可以针对数据密集计算场景提供优化的语义,如密集计算场景中经常有“多对一”的语义,而使用超向量的操作可以充分挖掘这层语义。超向量还可以促使更加优化的实现,编译器由于获得了更多语言层语义,可以对计算生成更多优化代码,如生成了更多SIMD指令,提升整体的计算性能。以上三个方案均已在JVM以及相应大数据运行时中实现并进行测试。
胡翠云[7](2013)在《基于组织的面向Agent程序设计理论及语言》文中研究表明当前以互联网为运行环境的软件系统呈现出环境开放化、软件实体自主化、交互不确定化和系统社会化等方面的复杂性特点,对软件的动态性、灵活性和社会性提出了更高的要求。如何提供高层的抽象、有效的机制以及具有较强表达能力的程序设计语言来支持此类软件系统的构造和实现,是目前软件工程关注的一个重要研究课题。面向Agent程序设计(Agent-Oriented Programming,AOP)将自主Agent作为基本的软件单元,Agent之间通过高层的交互相互作用,代表了一种新颖的软件抽象和软件系统构造方法,被视为解决上述问题的有效手段。然而现有AOP的研究,一方面缺乏有效的程序设计机制支持软件的动态性和灵活性;另一方面缺乏与现有软件工程成功理论和实践的充分集成,影响了程序设计的质量和效率。近年来,随着社会组织思想在面向Agent分析和设计中的广泛应用,借助社会组织的思想和机制认识互联网环境下软件系统的社会化特征,进而支持此类系统的构造和实现已成为AOP研究的一个重要趋势。本文以互联网环境下软件系统的构造和实现为具体应用背景,从软件工程的角度,研究如何将AOP与社会组织学的思想和方法以及软件工程的技术和原则相结合,从程序设计模型和机制、语言的语法和语义、类型系统和理论、程序设计和运行支撑环境四个方面,开展基于组织的面向Agent程序设计研究。论文取得的研究成果和主要创新点描述如下。1.基于组织的面向Agent程序设计模型和机制针对现有AOP模型缺乏支持软件系统动态性和灵活性的有效抽象和机制这一问题,论文将Agent、角色和组织作为一阶的程序设计抽象,引入一系列的社会组织机制作为程序设计机制,提出了基于组织的面向Agent程序设计模型——Oragent,从而在程序设计层为互联网环境下软件系统的动态性、灵活性等提供显式支持,具体包括:角色扮演机制实现了Agent与其结构和行为的动态绑定;角色组合机制实现了Agent的自适应行为;角色晋升机制实现了Agent的自演化行为;基于角色的交互使得Agent可以动态地获取交互对象;基于组织的自管理机制实现了组织结构的动态调整(即实现了组织的自适应性)。此外,Oragent模型还借鉴和引入了OOP中的继承机制,分别在组织和角色不同层次上给出了其新的解释和内涵,从而增强了Oragent程序的结构性和可重用性。2.基于组织的面向Agent程序设计语言OragentL论文基于Oragent程序设计模型设计了OragentL语言,其特色在于为组织的概念和机制提供了显式的语言设施,使得Oragent模型支持动态性的核心程序设计机制在语言层得以体现,为不同抽象层次的软件实体(高层的组织概念和个体Agent)提供了统一的语法和语义。论文还基于抽象状态机和迁移系统从语句、Agent、组织等不同层次上定义了OragentL语言的形式化操作语义,从而为OragentL语言运行时环境的设计与实现提供了理论参考,也为OragentL性质的验证奠定了基础。3.基于组织的面向Agent程序设计语言的类型系统和理论为了解决在基于组织的面向Agent程序设计中,Agent之间交互的合法性以及来自不同角色的行为的一致性问题,论文定义了OragentL语言的类型系统,建立了相应的理论,主要工作包括:基于动作序列(行为)建立了Agent和角色的类型理论;给出了角色程序和Agent格局的良类型规则;基于保持定理和进展定理,证明了轻量级OragentL语言(只支持角色扮演和基于角色交互机制)的安全性等。OragentL语言类型系统的研究,提高了基于组织的面向Agent程序设计程序的质量,从而使得基于OragentL开发大规模软件系统更加安全和实用。4.基于组织的面向Agent程序设计和运行的支撑环境论文设计与实现了支持OragentL程序设计与运行的支撑环境,以支持OragentL程序的编译和运行。该环境主要包括两个部分:OragentL程序运行时环境Oragentburg和OragentL编译器。Oragentburg在平台层实现了Oragent模型的核心程序设计机制,同时为Oragent程序的运行提供了诸如实体管理、标识符管理、通信等基础设施和服务。OragentL编译器实现了OragentL程序到Oragentburg上可运行的Java代码的转换。论文以互联网环境下的在线商场为案例,基于上述理论和语言对其进行构造和实现。该工作一方面展示了如何基于OragentL语言提供的语言设施和机制来构造和实现互联网环境下的软件系统;另一方面验证了OragentL编译器与Oragentburg运行时环境的有效性。
毛新军,胡翠云,孙跃坤,王怀民[8](2012)在《面向Agent程序设计的研究》文中提出面向Agent程序设计(agent-oriented programming,简称AOP)基于多Agent系统的抽象和思想、借助于Agent理论和技术来支持软件系统的构造与实现,其程序设计思想、软件模型、基础理论和语言设施有别于现有主流程序设计技术,如OOP,代表了一种新颖的程序设计范型.由于多Agent系统被视为支持开放环境下复杂软件系统开发的一种新颖、有效的技术手段,因而近年来AOP受到人工智能、软件工程和分布计算等领域研究学者和工程实践人员的高度关注,并在过去20年取得了重要进展.但是,无论在应对复杂多Agent系统开发方面,还是在大规模工业化应用等方面,AOP的研究与实践都面临着严峻的挑战.作为一种程序设计范型,AOP研究需要在交叉其他学科知识(如人工智能)的基础上,充分借鉴软件工程以及已有程序设计范型的原理、原则和成功实践,从而推动技术走向成熟并为广大工程实践人员所接受.通过对AOP研究历程的系统介绍,从软件工程的视点考虑MAS程序设计的不同层次,综述AOP在程序设计抽象与模型、机制与理论、语言与设施和支撑平台这4个方面的研究成果,展示不同时期AOP研究关注点的变化以及发展趋势,分析当前AOP研究与实践存在的问题和面临的挑战,并展望进一步的研究.
唐祖锴[9](2011)在《对象代理程序设计语言研究》文中指出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设计一套全新的语法结构。
唐祖锴,彭智勇,任毅,崔晓军[10](2011)在《一种动态角色模型及其实现机制》文中进行了进一步梳理很多角色模型的设计和使用存在着一些限制,例如:角色对象的创建及其与源对象的绑定需要通过编码显式完成;角色对象与源对象之间的单向链接使得消息不能在它们之间互相转发等.这些限制使得角色模型的使用较为繁琐,在程序设计中往往会将系统的业务逻辑和对角色对象的控制逻辑混杂在一起.被称为DR的动态角色模型除了相关工作的基本功能外还提供了角色对象的自动创建及其与源对象之间的双向链接,使得角色对象的使用变得透明.所有这些功能的实现都基于一种简洁、统一的前置对象机制,它不但能较好地处理复杂角色体系,还能与现有的面向对象系统兼容.
二、数据抽象和抽象数据类型在OOP中的作用(论文开题报告)
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要提出一款精简64位RISC处理器存储管理单元结构并详细分析其设计过程。在该MMU结构中,TLB采用叁个分离的TLB,TLB采用基于内容查找的相联存储器并行查找,支持粗粒度为64KB和细粒度为4KB两种页面大小,采用多级分层页表结构映射地址空间,并详细论述了四级页表转换过程,TLB结构组织等。该MMU结构将作为该处理器存储系统实现的一个重要组成部分。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
三、数据抽象和抽象数据类型在OOP中的作用(论文提纲范文)
(1)基于CBE的软件工程专业OOP与DS教学有机结合研究(论文提纲范文)
1 引言 |
2 可行性 |
2.1 传统模式存在的不足 |
2.2 OOP与DS的联系 |
3 教学改革实施方案构思与实践 |
3.1 OOP中的DS |
3.1.1 单纯数组实现 |
3.1.2 通过List容器实现 |
3.2 DS中的OOP |
3.3 增设模块化课程综合设计环节 |
4 结束语 |
(2)高动态无人机多跳网络鲁棒资源分配(论文提纲范文)
摘要 |
ABSTRACT |
符号对照表 |
缩略语对照表 |
第一章 绪论 |
1.1 研究背景及意义 |
1.1.1 无人机多跳网络概述 |
1.1.2 无人机多跳网络鲁棒资源分配的必要性 |
1.2 平均场博弈概述 |
1.2.1 平均场理论概述 |
1.2.2 平均场博弈 |
1.3 USAP协议概述 |
1.4 论文研究内容及章节安排 |
第二章 多跳自组织网络资源分配研究现状 |
2.1 移动多跳自组织网络资源分配 |
2.1.1 鲁棒资源分配研究现状 |
2.1.2 MAC层研究现状 |
2.1.3 功率控制研究现状 |
2.1.4 跨层资源分配研究现状 |
2.2 无人机多跳网络研究现状 |
2.2.1 无人机多跳网络未来发展和应用 |
2.2.2 国内外无人机集群化研究进展 |
2.3 本章小结 |
第三章 联合物理层和MAC层的鲁棒资源分配 |
3.1 系统模型和问题建模 |
3.1.1 系统模型 |
3.1.2 问题建模和子问题分解 |
3.2 时隙分配子问题 |
3.2.1 协议帧结构设计 |
3.2.2 节点移动导致系统性能下降的解决方案 |
3.2.3 三维空间移动预测模型 |
3.3 功率控制子问题 |
3.3.1 博弈者的鲁棒代价函数 |
3.3.2 系统的HJB和 FPK方程 |
3.3.3 求解平均场均衡 |
3.4 本章总结 |
第四章 仿真平台搭建与算法性能仿真 |
4.1 仿真平台搭建 |
4.1.1 MATLAB面向对象编程介绍 |
4.1.2 仿真平台介绍 |
4.1.3 MAC层动态TDMA协议实现 |
4.2 算法性能分析 |
4.2.1 MAC层算法性能分析 |
4.2.2 功率控制算法性能分析 |
4.3 本章总结 |
第五章 总结和展望 |
5.1 研究总结 |
5.2 研究展望 |
参考文献 |
致谢 |
作者简介 |
(3)Apla+语言的云服务交互机制的研究(论文提纲范文)
摘要 |
Abstract |
1 绪论 |
1.1 研究背景与选题意义 |
1.1.1 研究背景 |
1.1.2 选题意义 |
1.2 国内外研究现状 |
1.2.1 构件与服务交互机制 |
1.2.2 云计算交互机制 |
1.2.3 形式化模型 |
1.2.4 交互机制描述语言 |
1.2.5 当前研究工作的分析与比较 |
1.3 关键问题 |
1.4 研究内容与论文结构 |
1.4.1 本文研究内容 |
1.4.2 论文结构 |
2 相关基础概述 |
2.1 PAR方法与PAR平台 |
2.1.1 Radl语言 |
2.1.2 Apla语言 |
2.2 Orc语言 |
2.2.1 Orc语法结构 |
2.2.2 Orc形式化语义 |
2.3 会话类型 |
2.3.1 二元会话类型 |
2.3.2 多元会话类型 |
3 面向云服务交互的会话模型 |
3.1 云服务交互及其类型 |
3.1.1 云服务交互 |
3.1.2 云服务交互类型 |
3.2 基于会话的云服务交互设计模型 |
3.2.1 云服务会话与会话协议 |
3.2.2 角色与资源池 |
3.2.3 云服务会话的概念模型 |
3.3 相关研究比较 |
4 面向云服务交互的Apla+会话机制设计 |
4.1 会话交互机制架构 |
4.2 Apla+云服务调用机制 |
4.2.1 Apla+会话的并发模型 |
4.2.2 云服务调用协议 |
4.3 云服务会话的并发控制机制 |
4.3.1 Apla+会话管理协议 |
4.3.2 并发控制协议 |
4.3.3 容错机制 |
4.4 Apla+会话的云服务选择机制 |
4.4.1 服务选择的数学模型 |
4.4.2 资源导向分解策略 |
4.4.3 实验与讨论 |
4.5 相关研究比较 |
5 Apla+中的会话编程 |
5.1 概述 |
5.2 面向会话的Apla+编程语法 |
5.2.1 Apla+会话程序结构 |
5.2.2 组合算子 |
5.2.3 Apla+会话的异步编程模型 |
5.2.4 Apla+会话程序的容错方法 |
5.3 Apla+会话程序的形式化语义 |
5.3.1 抽象语法 |
5.3.2 操作语义 |
5.4 Apla+会话程序的类型系统 |
5.4.1 类型指派规则 |
5.4.2 Apla+会话程序的子类型与角色 |
5.4.3 Apla+会话程序的类型安全性 |
5.4.4 云服务动态绑定安全性 |
5.5 相关研究比较 |
6 Apla+会话编程的模型驱动开发与应用 |
6.1 Apla+会话程序的开发编译框架 |
6.1.1 Apla+会话程序映射Java转换框架 |
6.1.2 Apla+会话机制的实现 |
6.1.3 Apla+会话程序的转换规则 |
6.1.4 Apla+会话程序转换算法 |
6.1.5 类型检测算法 |
6.2 基于Apla+会话的云服务交互机制设计 |
6.2.1 Apla+会话编程的设计方法 |
6.2.2 Apla+会话编程案例 |
6.3 相关研究比较 |
7 总结与展望 |
7.1 本文工作总结 |
7.2 未来工作展望 |
参考文献 |
攻博期间发表的科研成果目录 |
致谢 |
(4)面向方面编程中可复用方面库的构建及其应用研究(论文提纲范文)
摘要 |
Abstract |
第1章 绪论 |
1.1 研究背景 |
1.2 国内外研究现状 |
1.2.1 特定横切关注领域方面库 |
1.2.2 方面库构建模式和规则 |
1.3 研究现状分析 |
1.4 研究内容 |
1.5 本文结构 |
第2章 相关概念与技术 |
2.1 面向方面编程 |
2.2 @ASPECTJ语法 |
2.3 方面库 |
2.4 JAXB |
2.5 本章小结 |
第3章 方面库实现的分析与比较 |
3.1 现有方面库实现 |
3.1.1 JSAL |
3.1.2 AOmp Lib |
3.1.3 GAIN |
3.1.4 RAL |
3.1.5 Persistence Framework |
3.2 比较指标 |
3.3 分析与比较 |
3.4 本章小结 |
第4章 可复用方面库构建方法 |
4.1 方面库设计概述 |
4.1.1 方面库设计元模型 |
4.1.2 方面库工作原理 |
4.1.3 方面库文件组织形式 |
4.2 方面库描述模型 |
4.3 可复用方面定义方法 |
4.3.1 可复用方面结构规则 |
4.3.2 可复用方面描述注解定义 |
4.3.3 可复用方面实例 |
4.4 本章小结 |
第5章 方面库管理工具设计与实现 |
5.1 方面库管理工具设计 |
5.1.1 方面库管理工具功能设计 |
5.1.2 方面库管理工具使用流程 |
5.2 方面库管理工具实现 |
5.2.1 方面库基本管理 |
5.2.2 可复用方面查询 |
5.2.3 自动生成具体方面 |
5.3 本章小结 |
第6章 可复用方面库应用实例 |
6.1 信息管理系统方面库应用实例 |
6.1.1 信息管理系统方面库定义 |
6.1.2 信息管理系统方面库复用 |
6.2 设计模式方面库应用实例 |
6.2.1 设计模式的AOP实现概述 |
6.2.2 观察者模式抽象方面应用实例 |
6.3 本章小结 |
第7章 总结与展望 |
7.1 工作总结 |
7.2 展望 |
参考文献 |
攻读硕士学位期间已撰写和发表的论文 |
致谢 |
(5)基于函数式编程语言的设计模式研究(论文提纲范文)
摘要 |
Abstract |
第一章 绪论 |
1.1 研究背景和意义 |
1.2 主要研究内容 |
1.3 论文结构 |
第二章 相关知识 |
2.1 FP语言 |
2.1.1 概述 |
2.1.2 主要特性 |
2.2 设计模式 |
2.2.1 概述 |
2.2.2 原则 |
2.2.3 表示 |
2.3 本章小结 |
第三章 FP语言中的设计模式 |
3.1 工厂模式 |
3.2 迭代器模式 |
3.3 命令模式 |
3.4 本章小结 |
第四章 模块模式的设计与实现 |
4.1 模块模式的设计 |
4.2 模块模式的实现 |
4.2.1 快速实现 |
4.2.2 高级实现 |
4.2.3 扩展实现 |
4.2.4 系统实现 |
4.3 模块模式的评价 |
4.4 本章小结 |
第五章 发布-订阅模式的设计与实现 |
5.1 发布-订阅模式的设计 |
5.2 发布-订阅模式的实现 |
5.2.1 数据结构 |
5.2.2 AR算法 |
5.2.3 方法实现 |
5.3 发布-订阅模式的评价 |
5.4 本章小结 |
第六章 事件驱动模型的设计与实现 |
6.1 事件驱动模型的设计 |
6.2 事件驱动模型的实现 |
6.2.1 基本方法实现 |
6.2.2 扩展功能实现 |
6.3 EDMBFPL的评价 |
6.4 本章小结 |
第七章 应用实例 |
7.1 实例一 |
7.1.1 概述 |
7.1.2 模块模式的应用 |
7.1.3 订阅-发布模式的应用 |
7.2 实例二 |
7.2.1 概述 |
7.2.2 事件驱动模型的应用 |
第八章 总结与展望 |
8.1 总结 |
8.2 创新点 |
8.3 展望 |
参考文献 |
致谢 |
附录:攻读硕士学位期间已发表或待发表的论文 |
(6)面向数据密集计算的Java虚拟机性能分析与优化(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 大数据与数据密集计算 |
1.2 Java虚拟机通用平台 |
1.3 基于Java虚拟机的数据密集应用的问题 |
1.4 本文的主要贡献 |
1.5 本文的结构安排 |
第二章 通过虚拟化技术优化垃圾回收的研究 |
2.1 引言 |
2.1.1 硬件虚拟化和Dune平台 |
2.1.2 Java语言与Java虚拟机 |
2.2 分代式垃圾回收中的问题介绍 |
2.3 Hot Spot虚拟机垃圾回收分析 |
2.4 系统设计 |
2.4.1 系统实现 |
2.4.2 Java虚拟机优化的一些限制 |
2.4.3 Dune系统中的优化 |
2.4.4 其它实现细节 |
2.5 应用测试 |
2.5.1 Dune系统优化效果 |
2.5.2 Java虚拟机优化效果 |
第三章 分离式对象模型 |
3.1 引言 |
3.2 现有Java对象模型 |
3.2.1 传统对象布局 |
3.2.2 对象访存与对象头的问题 |
3.2.3 对象布局优化技术 |
3.2.4 现有模型性能限制 |
3.3 分离式对象模型设计 |
3.3.1 Java堆分配 |
3.3.2 分离式对象指针存储与访问 |
3.3.3 分离式对象的区分 |
3.3.4 分离式对象的内存管理 (创建,垃圾回收) |
3.4 系统实现 |
3.4.1 参数输入以及类加载初始化 |
3.4.2 内存管理 |
3.4.3 Parallel Scavenge垃圾回收 |
3.4.4 解释器 |
3.4.5 即时编译器 |
3.5 实验 |
3.5.1 测试环境 |
3.5.2 测试结果分析 |
3.6 相关工作 |
3.7 本章小结 |
第四章 超向量: 面向机器学习应用的数据结构 |
4.1 引言 |
4.2 背景介绍 |
4.2.1 运行时环境中的机器学习 |
4.2.2 Spark中的机器学习 |
4.3 基于向量的机器学习应用分析 |
4.4 超向量:一种聚合式设计的向量抽象 |
4.4.1 超向量抽象 |
4.4.2 超向量的实现策略 |
4.4.3 自适应的计算方式 |
4.5 超向量的实现 |
4.5.1 机器学习的不同阶段 |
4.5.2 支持SIMD优化 |
4.6 性能测试 |
4.6.1 测试环境 |
4.6.2 微基准测试 |
4.6.3 应用性能测试 |
4.6.4 SIMD分析 |
4.6.5 内存开销 |
4.7 相关工作 |
4.8 本章小结 |
全文总结 |
参考文献 |
致谢 |
攻读学位期间参与的项目 |
攻读学位期间发表的学术论文 |
(7)基于组织的面向Agent程序设计理论及语言(论文提纲范文)
摘要 |
Abstract |
第一章 绪论 |
1.1 研究背景 |
1.1.1 应用需求 |
1.1.2 技术背景 |
1.2 相关研究工作 |
1.2.1 基于组织的软件开发技术 |
1.2.2 面向 Agent 的软件工程 |
1.2.3 面向 Agent 的程序设计 |
1.2.4 现有工作的分析和总结 |
1.3 拟解决的科学问题 |
1.4 本文主要贡献 |
1.5 论文组织结构 |
第二章 基于组织的面向 Agent 程序设计模型及机制 |
2.1 问题描述和分析 |
2.2 基于组织的面向 Agent 程序设计模型——Oragent |
2.2.1 Agent |
2.2.2 角色 |
2.2.3 组织 |
2.3 基于组织的面向 Agent 程序设计机制 |
2.3.1 角色扮演与角色组合 |
2.3.2 角色晋升 |
2.3.3 基于角色的交互 |
2.3.4 基于组织的自管理 |
2.3.5 继承 |
2.3.6 组合 |
2.3.7 异常 |
2.4 相关工作对比分析 |
2.5 小结 |
第三章 基于组织的面向 Agent 程序设计语言——OragentL |
3.1 OragentL 概述 |
3.2 组织类和组织 |
3.2.1 角色声明 |
3.2.2 初始化动作 |
3.2.3 组织行为 |
3.2.4 结构调整策略 |
3.2.5 组织的创建和销毁 |
3.2.6 组织类代码示例 |
3.3 角色和 Agent |
3.3.1 角色扮演的约束条件 |
3.3.2 角色中的动作和行为 |
3.3.3 Agent 的创建 |
3.3.4 角色代码示例 |
3.4 继承 |
3.4.1 组织继承 |
3.4.2 角色继承 |
3.4.3 继承代码示例 |
3.5 角色晋升 |
3.6 角色组合 |
3.6.1 角色变迁 |
3.6.2 异常 |
3.7 相关工作对比分析 |
3.8 小结 |
第四章 OragentL 语言的操作语义 |
4.1 OragentL 语言的抽象语法 |
4.2 状态和格局 |
4.3 表达式和语句的动态语义 |
4.3.1 动作调用 |
4.3.2 消息发送语句 |
4.3.3 消息处理语句 |
4.3.4 异常语句 |
4.4 Agent 的动态语义 |
4.4.1 Agent 的行为规则 |
4.4.2 角色变迁语句 |
4.4.3 异常语句 |
4.4.4 通信语句 |
4.5 组织的动态语义 |
4.6 角色的动态语义 |
4.7 小结 |
第五章 基于组织的面向 Agent 程序设计语言的类型系统 |
5.1 类型系统介绍 |
5.2 轻量级 OragentL——FOL |
5.2.1 FOL 的抽象语法 |
5.2.2 FOL 的格局和操作语义 |
5.3 FOL 的类型规则 |
5.3.1 Agent 和角色的类型化 |
5.3.2 角色程序的良构规则 |
5.3.3 程序格局的良构规则 |
5.4 FOL 类型系统的性质及证明 |
5.5 相关工作对比分析 |
5.6 小结 |
第六章 OragentL 程序设计及运行支撑环境 |
6.1 OragentL 程序设计与运行支撑环境的总体架构 |
6.2 OragentL 运行时环境 |
6.2.1 Oragentburg 概述 |
6.2.2 实体生命周期管理 |
6.2.3 实体标识符管理 |
6.2.4 运行引擎 |
6.2.5 OragentL 核心机制的实现 |
6.3 OragentL 编译器 |
6.3.1 OragentL 编译器概述 |
6.3.2 OragentL 语法分析器 |
6.3.3 OragentL 翻译器 |
6.4 案例分析 |
6.5 小结 |
第七章 总结与展望 |
7.1 论文工作总结 |
7.2 研究展望 |
致谢 |
参考文献 |
作者在学期间取得的学术成果 |
附录 OragentL 语法 |
(8)面向Agent程序设计的研究(论文提纲范文)
1 AOP的研究历程 |
2 AOP的研究内容和编程支持 |
2.1 MAS的程序设计层次 |
(1) 个体Agent层 |
(2) Agent间交互层 |
(3) 环境层 |
(4) 多Agent组织层 |
2.2 AOP的研究内容 |
(1) 程序设计抽象与模型 |
(2) 程序设计机制与理论 |
(3) 程序设计语言与设施 |
(4) 程序的开发与运行 |
3 AOP的研究现状分析 |
3.1 抽象与模型 |
3.1.1 个体Agent层 |
3.1.2 Agent交互层 |
3.1.3 环境层 |
3.1.4 多Agent组织层 |
3.2 机制与理论 |
3.2.1 个体Agent层 |
3.2.2 Agent交互层 |
3.2.3 环境层 |
3.2.4 多Agent组织层 |
3.3 语言与设施 |
3.4 开发与运行 |
3.4.1 AOP开发支持环境 |
3.4.2 AOP运行时环境 |
(1) 软件实体管理 |
(2) 通信基础设施 |
(3) MAS程序运行 |
4 AOP研究与实践面临的问题与展望 |
4.1 问题和挑战 |
(1) AOP抽象与模型的多样性导致AOP技术难以标准化、集成和互操作 |
(2) AOP语言对MAS不同层次的支持和融合有限 |
(3) AOP的IDE缺乏有效的调试和测试工具 |
(4) AOP尚未在支持复杂MAS开发方面充分展示其技术潜力 |
(5) AOP未能充分借鉴和体现软件工程的原理、原则和思想 |
(6) AOP缺乏程序设计方法学 |
4.2 研究展望 |
(1) 统一AOP抽象和软件模型 |
(2) 集成与融合的AOP语言和工具 |
(3) 支持AOP的软件测试和确认技术 |
(4) 对复杂环境和系统的编程支持 |
(5) 从软件工程角度来开展AOP语言和机制设计 |
(6) 关注AOP方法学研究 |
5 结论 |
(9)对象代理程序设计语言研究(论文提纲范文)
摘要 |
Abstract |
目录 |
图表目录 |
第一章 绪论 |
1.1 研究背景 |
1.1.1 角色模型 |
1.1.2 面向方面程序设计 |
1.2 研究现状 |
1.2.1 基于角色模型的程序设计语言 |
1.2.2 角色模型与面向方面程序设计的融合 |
1.2.3 语言的运行时结构 |
1.2.4 动态程序设计语言 |
1.3 本文的主要工作 |
1.3.1 研究内容 |
1.3.2 本文安排 |
第二章 基于对象代理模型的程序设计 |
2.1 对象代理模型 |
2.1.1 代理类和代理对象 |
2.1.2 代理继承语义 |
2.1.3 代理对象的创建 |
2.1.4 更新迁移机制 |
2.2 对象代理语言ODPL |
2.2.1 开发案例 |
2.3 基于选择型代理类的程序设计 |
2.3.1 基本类 |
2.3.2 利用选择型代理类实现功能扩展 |
2.3.3 利用选择型代理类实现多重分类 |
2.3.4 利用选择型代理类实现类型转换 |
2.4 基于联合型代理类的程序设计 |
2.5 基于连接型代理类的程序设计 |
2.6 基于分组型代理类的程序设计 |
2.6.1 利用分组型代理类实现统一管理 |
2.6.2 利用分组型代理类实现内部交互 |
2.6.3 分组型代理类与其它类型代理类的主要差异 |
2.7 源类与代理类的融合 |
2.8 其它开发案例 |
2.8.1 案例一:链表 |
2.8.2 案例二:观察者模式 |
2.9 本章小结 |
第三章 对象代理语言ODPL的语法结构 |
3.1 语法描述方式简介 |
3.2 程序的基本结构 |
3.2.1 源类与代理类 |
3.2.2 源对象与代理对象 |
3.3 类的结构 |
3.3.1 基类的结构 |
3.3.2 代理类的结构 |
3.3.3 代理规范 |
3.3.4 代理类的源类 |
3.4 代理继承规范 |
3.4.1 代理继承 |
3.4.2 选择型代理类的代理继承规范 |
3.4.3 联合型代理类的代理继承规范 |
3.4.4 连接型代理类的代理继承规范 |
3.5 SwitchTo切换操作 |
3.5.1 切换操作 |
3.5.2 SwitchTo切换操作的基本语法 |
3.5.3 SwitchTo切换操作中的参数映射 |
3.6 SwitchFrom切换操作 |
3.6.1 SwitchFrom切换操作的基本语法 |
3.6.2 源方法调用 |
3.6.3 SwitchFrom切换操作中的参数映射 |
3.6.4 Before与After切换操作 |
3.6.5 切换操作的优先级 |
3.7 对象的创建与绑定 |
3.7.1 基类对象的创建 |
3.7.2 通过构造器显式创建代理对象 |
3.7.3 通过创建条件自动创建代理对象 |
3.7.4 通过引用迁移隐式创建代理对象 |
3.7.5 代理类的激活 |
3.8 分组型代理类 |
3.8.1 分组型代理类的代理规范 |
3.8.2 分组型代理对象的创建与绑定 |
3.8.3 分组型代理对象上的属性访问与消息调用 |
3.9 本章小结 |
第四章 对象代理语言ODPL的操作语义 |
4.1 ODPL操作语义的基本定义 |
4.1.1 对象代理运算 |
4.1.2 类与对象的基本结构 |
4.2 ODPL中的基本操作 |
4.2.1 上下文环境的更新规则 |
4.2.2 基于代理继承关系的对象检索 |
4.2.3 对象的创建与绑定 |
4.2.4 类的部署与撤销 |
4.2.5 检查代理对象的创建与销毁条件 |
4.3 ODPL中的属性访问与方法调用 |
4.3.1 一些基本函数的定义 |
4.3.2 基类对象上的属性访问与方法调用 |
4.3.3 普通型代理对象上的属性访问与方法调用 |
4.3.4 分组型代理对象上的属性访问与方法调用 |
4.4 本章小结 |
第五章 对象代理语言ODPL的实现机制 |
5.1 关于不同功能实现机制的讨论 |
5.1.1 代理对象向源对象的消息转发机制 |
5.1.2 源对象向代理对象的消息转发机制 |
5.1.3 代理对象的自动创建与销毁机制 |
5.2 基于前置对象的实现机制 |
5.2.1 为对象设置前置对象 |
5.2.2 利用前置对象动态关联代理对象 |
5.3 利用前置对象实现复杂代理继承体系 |
5.3.1 代理链的实现 |
5.3.2 代理树的实现 |
5.3.3 多源代理对象与源对象的绑定 |
5.4 对Self脂针的处理 |
5.5 源类与代理类融合功能的实现 |
5.5.1 融合操作的基本执行流程 |
5.5.2 融合操作后的代理对象关联 |
5.6 ODPL原型系统 |
5.6.1 ODPL原型系统的基本架构 |
5.6.2 案例分析及实现要点说明 |
5.7 本章小结 |
第六章 使用ODPL支持面向环境程序设计 |
6.1 面向环境程序设计 |
6.2 开发案例:利用上下文环境改变对象行为 |
6.3 基于前置对象实现面向环境程序设计 |
6.3.1 基于前置对象的消息传递 |
6.3.2 上下文环境的退出 |
6.3.3 静态与动态上下文环境 |
6.4 本章小结 |
第七章 总结与展望 |
7.1 本文总结 |
7.2 未来工作 |
参考文献 |
攻读博士学位期间发表的论文及科研成果目录 |
致谢 |
四、数据抽象和抽象数据类型在OOP中的作用(论文参考文献)
- [1]基于CBE的软件工程专业OOP与DS教学有机结合研究[J]. 王泽梁,汪丽华. 黄山学院学报, 2019(03)
- [2]高动态无人机多跳网络鲁棒资源分配[D]. 代浩翔. 西安电子科技大学, 2019(02)
- [3]Apla+语言的云服务交互机制的研究[D]. 江东明. 武汉大学, 2017(06)
- [4]面向方面编程中可复用方面库的构建及其应用研究[D]. 易顺. 武汉工程大学, 2016(07)
- [5]基于函数式编程语言的设计模式研究[D]. 刘德财. 上海师范大学, 2016(02)
- [6]面向数据密集计算的Java虚拟机性能分析与优化[D]. 雷天洋. 上海交通大学, 2016(01)
- [7]基于组织的面向Agent程序设计理论及语言[D]. 胡翠云. 国防科学技术大学, 2013(10)
- [8]面向Agent程序设计的研究[J]. 毛新军,胡翠云,孙跃坤,王怀民. 软件学报, 2012(11)
- [9]对象代理程序设计语言研究[D]. 唐祖锴. 武汉大学, 2011(04)
- [10]一种动态角色模型及其实现机制[J]. 唐祖锴,彭智勇,任毅,崔晓军. 软件学报, 2011(09)