Virtual Machine Support for Aspect-Oriented Programming Languages.
Technische Universität, Darmstadt
[Ph.D. Thesis], (2006)
Available under Only rights of use according to UrhG.
Download (2MB) | Preview
|Item Type:||Ph.D. Thesis|
|Title:||Virtual Machine Support for Aspect-Oriented Programming Languages|
Among implementations of the aspect-oriented programming paradigm, some approaches have been developed in which aspect weaving does not necessarily occur at compile-time, but at run-time of an application. Weaving at run-time has the advantage that, e.g., in the context of J2EE applications, objects can be dynamically and transparently decorated with certain services that are important in J2EE applications. Moreover, dynamic weaving makes more allowance for the inherently dynamic nature of pointcuts than static weaving - pointcuts quantify over the execution of an application. The different approaches to dynamic weaving however lack the kind of support for AOP language mechanisms that is common for mechanisms of other paradigms: direct support from the run-time environment. For example, virtual machines for object-oriented programming languages offer direct support for resolving virtual methods via method tables. Such support is at present not available for aspect-oriented mechanisms. Instead, the implementation of a run-time environment for AOP languages is simulated at application level. This is where this work applies. In the course of this work, Steamloom was implemented, a virtual machine with explicit support for AOP mechanisms. Steamloom is an extension of an existing virtual machine for the Java programming language. Steamloom provides a unified representation of Java bytecodes that is accessed by both the virtual machine and the AOP functionality. The latter utilises the bytecode representation's capabilities to evaluate pointcuts and for weaving. Moreover, Steamloom supports dynamic weaving by utilising the just-in-time compilers of the virtual machine for dynamically recompiling methods affected by weaving. Apart from that, Steamloom has integrated support for some other AOP mechanisms, of which an efficient evaluation of control flow-dependent residues is especially important. Steamloom is conceived as a platform on whose basis AOP languages can be implemented experimentally. The pointcut model and weaver are extensible, which allows for the implementation of new elements. This extensibility was used in this work to implement and evaluate three different strategies for control flow-dependent pointcuts. To measure the value of Steamloom, a comprehensive analysis of different aspects of performance and efficiency of a representative collection of AOP implementations was conducted. It is based on a presentation of implementation details of these AOP implementations that has been achieved on the basis of a unified presentation framework.
|Place of Publication:||Darmstadt|
|Classification DDC:||000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik|
|Divisions:||20 Department of Computer Science|
|Date Deposited:||17 Oct 2008 09:22|
|Last Modified:||07 Dec 2012 11:51|
|Referees:||D'Hondt, Prof. Dr. Theo|
|Advisors:||Mezini, Prof. Dr. Mira|
|Refereed:||16 December 2005|