当前位置: 首页 > 专利查询>南京大学专利>正文

一种基于对象实例的行为变体的JCOP扩展实现方法技术

技术编号:11185644 阅读:109 留言:0更新日期:2015-03-25 14:15
本发明专利技术公开了一种基于对象实例的行为变体的JCOP扩展实现方法。上下文敏感软件中引入多线程编程使得上下文触发的跨线程行为变化成为常态,其中常见的是同一个类型的多个实例在应对相同上下文时,需要作出不同的行为变化。而现有面向上下文编程语言仅支持以类为单位的行为变体定义,难以满足此类应用场景的需求。发明专利技术专利申请提出了一个基于对象的行为变体模型,以此为基础,在JCOP语言中引入相应的语法设施,实现了一个扩展的JCOP语言,在编程模型和编程语言上解决了上述问题。

【技术实现步骤摘要】

本专利技术涉及面向上下文编程中行为变体模型及编程语言实现方法,特别是基于对象实例的行为变体模型,扩展了JCOP编译器与运行环境。
技术介绍
随着上下文在软件系统中发挥着越来越大的作用,开发和设计上下文敏感软件逐渐形成一种趋势。为了高效地进行上下文敏感软件的设计与开发,学者们提出了不同抽象级别的方案,其中既有软件体系架构级别,又有基于组件的设计。面向上下文编程(Context Oriented Programming,COP)方法为开发上下文敏感软件提供了语言级别的解决方案。随着应用场景的复杂化和对运行效率要求的提高,上下文敏感软件的开发中大量引入多线程编程,使得上下文触发的跨线程行为变化成为常态。一个典型的需求是,同一类型的多个实例在应对相同上下文时,需要作出不同的行为变化。COP方法使用行为变体(behavioral variation)来描述能替代或者改变软件基本行为的行为。而传统的COP语言往往扩展自面向对象语言,行为变体是以面向对象编程中的方法/函数体现,即行为变体以类为单位进行定义。此种处理方法,要求开发人员在定义行为变体时,将对应同一个上下文的行为变体定义在一处(如同用类封装相关方法)。也导致了程序在运行时刻,激活某个行为变体,同一个类型的多个实例的行为只能发生相同的改变。
技术实现思路
专利技术目的:为了解决该问题,要求扩展行为变体的定义方式,使得同类型的不同对象实例在相同的上下文环境中拥有不同行为,即,上下文敏感软件的多线程编程中同一个类型的多个实例在应对相同上下文时,需要作出不同的行为变化场景需求。本专利技术基于此问题提出了一种基于对象实例的行为变体模型的JCOP扩展实现方法。技术方案:一种基于对象实例行为变体的JCOP扩展实现方法,包括如下部分:1)基于对象实例的行为变体模型;2)实现该行为变体模型的用于扩展JCOP的语言机制;3)JCOP扩展语言的编译器和运行支撑环境。基于对象实例的行为变体模型,行为变体以对象实例为单位进行定义,区别于传统COP语言的以类为单位的定义方式。传统模型中,部分方法描述程序中的行为变化;行为层封装一组相关的行为变化,即行为层包含一组相关的部分方法。新模型中,行为层引入部分方法组用于描述一个行为变化以及其他备选行为变化,部分方法组被用来定义以对象实例为单位的行为变体。基于上述语言模型,本专利技术扩展JCOP语言,引入两类关键字group和instancewith/instancewithout。a)定义部分方法组group:group部分方法签名({语句块1本文档来自技高网...

【技术保护点】
一种基于对象实例行为变体的JCOP扩展实现方法,其主要特征包括如下几个部分:1)基于对象实例的行为变体模型;2)实现该行为变体模型的用于扩展JCOP的语言机制;3)JCOP扩展语言的编译器和运行支撑环境。其中,所述基于对象实例的行为变体模型,用部分方法组表示某一上下文中的同一行为的多种可能变化;所述实现该行为变体模型的用于扩展JCOP的语言机制由两类语法设施组成;所述JCOP扩展语言的编译器和运行支撑环境,编译器采用JastAdd开发框架开发,重写抽象语法树节点达到编译目的;运行支撑环境引入对象级别行为层队列,使得同类实例间的执行过程互不干涉。

【技术特征摘要】
1.一种基于对象实例行为变体的JCOP扩展实现方法,其主要特征包括如下
几个部分:
1)基于对象实例的行为变体模型;
2)实现该行为变体模型的用于扩展JCOP的语言机制;
3)JCOP扩展语言的编译器和运行支撑环境。
其中,所述基于对象实例的行为变体模型,用部分方法组表示某一上下文中
的同一行为的多种可能变化;
所述实现该行为变体模型的用于扩展JCOP的语言机制由两类语法设施组
成;
所述JCOP扩展语言的编译器和运行支撑环境,编译器采用JastAdd开发框
架开发,重写抽象语法树节点达到编译目的;运行支撑环境引入对象级别行为层
队列,使...

【专利技术属性】
技术研发人员:吕建徐锋蒋建亮
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1