Open AccessBook
Virtual Machine Support for Aspect-Oriented Programming Languages
Michael Haupt
- 27 Mar 2008
TL;DR: In the course of this work, Steamloom was implemented, a virtual machine with explicit support for AOP mechanisms, an extension of an existing virtual machine for the Java programming language that provides a unified representation of Java bytecodes that is accessed by both the virtual machine and the AOP functionality.
read more
Abstract: 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.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
•Journal Article
An overview of AspectJ
TL;DR: AspectJ as mentioned in this paper is a simple and practical aspect-oriented extension to Java with just a few new constructs, AspectJ provides support for modular implementation of a range of crosscutting concerns.
2.9K
Controlled, systematic, and efficient code replacement for running Java programs
Angela Nicoara
- 01 Jan 2007
TL;DR: The PROSE project as mentioned in this paper performs reversible and systematic changes to running Java applications without requiring them to be shutdown, motivated by scenarios such as hotfixes, online program instrumentation and debugging, and evolution of critical legacy applications.
66
Controlled, systematic, and efficient code replacement for running java programs
Angela Nicoara,Gustavo Alonso,Timothy Roscoe +2 more
- 01 Apr 2008
TL;DR: This paper describes the architecture of PROSE, the challenges of using aggressive inlining to achieve performance, and uses standard benchmarks to demonstrate code performance comparable with, or better than, compile-time systems from the Aspect-Oriented Programming community.
65
JavAdaptor-Flexible runtime updates of Java applications
Mario Pukall,Christian Kästner,Walter Cazzola,Sebastian Götz,Alexander Grebhahn,Reimar Schröter,Gunter Saake +6 more
TL;DR: JavAdaptor is presented, the first runtime update approach based on Java that offers flexible dynamic software updates, is platform independent, introduces only minimal performance overhead, and does not dictate the program architecture.
52
A machine model for aspect-oriented programming
Michael Haupt,Hans Schippers +1 more
- 30 Jul 2007
TL;DR: This paper introduces a lightweight, objectbased machine model for aspect-oriented languages based on objectoriented ones that is centered around delegation and relies on a very dynamic notion of join points as loci of late-bound dispatch of functionality.
References
•Book
Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma,Richard Helm,Ralph E. Johnson,John Vlissides +3 more
- 01 Jan 1994
TL;DR: The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns, which most experienced OOP designers will find out they've known about patterns all along.
24.8K
The vision of autonomic computing
TL;DR: A 2001 IBM manifesto noted the almost impossible difficulty of managing current and planned computing systems, which require integrating several heterogeneous environments into corporate-wide computing systems that extend into the Internet.
7.2K
•Book
The Java Language Specification
James Gosling,Bill Joy,Guy L. Steele +2 more
- 12 Sep 1996
TL;DR: The Java Language Specification, Second Edition is the definitive technical reference for the Java programming language and provides complete, accurate, and detailed coverage of the syntax and semantics of the Java language.
•Book
The Java Virtual Machine Specification
Tim Lindholm,Frank Yellin +1 more
- 19 Sep 1996
TL;DR: In this article, the authors present a detailed overview of the Java Virtual Machine, including the internal structure of the class file format, the internal form of Fully Qualified Class and Interface names, and the implementation of new class instances.
•Journal Article
An overview of AspectJ
TL;DR: AspectJ as mentioned in this paper is a simple and practical aspect-oriented extension to Java with just a few new constructs, AspectJ provides support for modular implementation of a range of crosscutting concerns.
2.9K
Related Papers (5)
Angela Nicoara,Gustavo Alonso +1 more
- 01 Jan 2005
Andrei Popovici,Gustavo Alonso,Thomas R. Gross +2 more
- 17 Mar 2003