[发明专利]一种避免行为层组合时行为变体重复编织的处理方法有效
申请号: | 201510197953.6 | 申请日: | 2015-04-23 |
公开(公告)号: | CN104820588B | 公开(公告)日: | 2018-06-05 |
发明(设计)人: | 吕建;徐锋;蒋建亮 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 李玉平 |
地址: | 210046 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 变体 语句 编织 调用关系 行为层 重复 激活 抽象语法树 调用关系图 插入监控 方法调用 运行时刻 有效地 预期的 源程序 编程 检测 声明 | ||
本发明公开了一种面向上下文编程中避免行为层组合时行为变体重复编织的处理方法。例如,JCOP声明式行为层组合,虽然支持对程序中多个方法编织行为层激活语句,但现有的编织方法通常采用向每个指定的方法调用处插入激活语句来实现此能力。如果两个方法在运行时刻存在调用关系,则会造成激活语句的重复编织,从而有可能导致程序不能正常运行,甚至发生不可预期的错误。本发明首先基于抽象语法树构造源程序的调用关系图,并在此基础上提供了一个调用关系检测方法,用于判断两个行为变体对应的方法之间是否存在调用关系,通过在有调用关系的行为变体相应语句中插入监控语句,来有效地避免行为变体重复编织的问题。
技术领域
本发明涉及一种面向上下文编程中避免行为层组合时行为变体重复编织的处理方法,特别是避免JCOP声明式行为层组合的行为变体重复编织,基于抽象语法树结构构造源程序的静态调用关系图,进一步采用基于调用关系图的调用关系检测方法,检测方法之间是否存在调用关系,从而决定是否插入监控语句,最终避免行为变体的重复编织,降低对现有JCOP运行支撑环境的影响。
背景技术
随着上下文在软件系统中发挥着越来越大的作用,开发和设计上下文敏感软件逐渐形成一种趋势。为了高效地进行上下文敏感软件的设计与开发,学者们提出了不同抽象级别的方案,其中既有软件体系架构级别,又有基于组件的设计。面向上下文编程(ContextOriented Programming,COP)方法为开发上下文敏感软件提供了语言级别的解决方案。
JCOP语言采用基于块结构的激活机制,是面向上下文编程中的主流语言之一。为了解决行为层激活语句在程序中散布(scattering)的问题,JCOP引入了声明式行为层组合。声明式行为层组合中,开发人员只需定义何时应该进行激活,以及激活哪个行为层。JCOP编译器以面向剖面编程的方式将激活语句插入到程序中的指定位置。
通常情况下,激活语句的插入位置是指定的方法调用前。JCOP语言也支持对程序中多个方法调用前编织行为层激活语句。然而,当两个方法之间在运行时刻存在调用关系时,现有编织方法会造成一条激活语句的重复编织。进一步地,激活语句中的行为变体对应的方法可能会重复执行,程序不能按照程序员预期的方式运行,发生不可预期的错误。
为了解决该问题,需要对现有编织方法进行修改,保证在运行时刻可能存在调用关系的方法之间不会重复编织同一条激活语句,从而保证程序按照开发人员的预期运行。
发明内容
发明目的:针对现有技术中存在的问题与不足,本发明提供一种面向上下文编程中避免行为层组合时行为变体重复编织的处理方法。
技术方案:一种面向上下文编程中避免行为层组合时行为变体重复编织的处理方法,包括如下部分:
1)避免行为层组合时行为变体重复编织的解决方案;
2)基于抽象语法树结构的调用关系图构造方法;
3)基于调用关系图的调用关系检测方法。
在抽象语法树上构造源程序的调用关系图,进而检测行为变体对应的方法之间的调用关系。面向剖面编程支持监控运行时刻控制流的关注点,借助面向剖面编程的这个功能,根据是否存在调用关系决定是否插入监控语句,避免激活语句的重复编织引起的行为层重复激活的问题。
静态调用关系图建立在程序的抽象语法树中,是抽象语法树的一部分,可通过抽象语法树的根节点进行访问。静态调用关系图基于类(继承)结构分析的结果,借助JastAdd框架的属性文法实现:利用综合属性收集调用关系图的入口信息,利用非终结属性构建调用关系图中的节点,利用非终结属性以及JastAddJ编译器现有的名字分析(NameAnalysis)建立表示方法调用关系的有向边。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510197953.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种仿真方法及系统
- 下一篇:用于计算机生成的内容的多用户编辑的设备以及方法