论文部分内容阅读
面向对象编程技术在实际的软件开发中早已大展身手并且深入人心,然而,随着软件开发的规模不断扩大,人们在使用面向对象编程方式时发现它可能会导致代码纠缠和代码分散的问题,由此给软件的后续维护工作带来了不便。
面向切面编程(Aspect Oriented Programming,AOP)开发方式的出现正应和了软件开发所遇到的这种问题,它通过分离关注点来使软件开发人员可以用一种松散耦合的方式来实现独立的关注点,然后,组合这些实现来建立最终系统。
随着面向切面编程语言AspectJ的实现以及应用,已经有越来越多的语言实现了各自的面向切面编程的功能。然而,由于这些实现都采用了各自的语法和实现方式,对于其它实现的兼容性几乎为零。如果要在两个实现中使用同一个功能的Aspect,需要开发两个在功能上完全相同,但是语法上不同的Advice。这样严重降低了程序员的工作效率。
本文作者在研究了面向切面编程、文本转换工具TXL及可以应用于多种编程语言的AOP静态文本织入方法的基础上,提出了一个基于TXL的通用AOP源代码织入框架TBGSW(TXL Based Generative AOP Source-Code Weaver Framework)。它可以根据类似于AspectJ语法的Aspect定义生成用于转换的TXL转换规则,并将转换规则应用在源代码上,从而将特定代码织入指定的位置。由于TXL先将程序文本按照已有的特定程序语言的语法解析为语法树再转换为最终结果,因此,它可以用来处理任何语言的程序文本织入。