Adding open modules to AspectJ

Adding open modules to AspectJ
复制标题

向 AspectJ 添加开放模块

DOI:
--
复制
发表时间:
2006
期刊:
Aspect-Oriented Software Development
影响因子:
--
通讯作者:
Ganesh Sittampalam
Ganesh Sittampalam
中科院分区:
--
文献类型:
--
作者:
Neil Ongkingco;Pavel Avgustinov;J. Tibble;L. Hendren;O. Moor;Ganesh Sittampalam

文献摘要

被引文献

相似文献

AspectJ没有提供隐藏实现细节的机制。因此,方面与它们所建议的代码的实现紧密耦合,而如果不分析可能修改其行为的所有建议,则不可能确定基本代码的行为。开放模块的概念是由Aldrich提出的,用于解决无限制通知所产生的问题。它是为小型函数式语言定义的,它提供了一个封装结构,允许实现限制可以应用外部通知的点集。我们为AspectJ提出了一个开放模块的改编。我们扩展开放模块以包含AspectJ的全部切入点原语集,扩展其模块组合方法以包含打开模块的能力,并将设计的实现描述为AspectBench编译器的扩展。我们还提供了一个在实际的AspectJ程序上使用开放模块的示例,以展示它如何适应现有的AspectJ项目。
AspectJ does not provide a mechanism to hide implementation details from advice. As a result, aspects are tightly coupled to the implementation of the code they advise, while the behaviour of the base code is impossible to determine without analysing all advice that could modify its behaviour.The concept of open modules is proposed by Aldrich to Solve the problems that arise from unrestricted advice. Defined for a small functional language, it provides an encapsulation construct that allows an implementation to limit the set of points to which external advice may apply.We present an adaptation of open modules for AspectJ. We expand open modules to encompass the full set of pointcut primitives for AspectJ, extend its method of module composition to include the ability to open up a module, and describe the implementation of the design as an extension of the AspectBench compiler. We also provide an example of the use of open modules on a substantial AspectJ program to show how it would fit into existing AspectJ projects.