Adapting virtual machine techniques for seamless aspect support

Current approaches to compiling aspect-oriented programs are inefficient. This inefficiency has negative effects on the productivity of the development process and is especially prohibitive for dynamic aspect deployment. In this work, we present how well-known virtual machine techniques can be used with only slight modifications to support fast aspect deployment while retaining runtime performance. Our implementation accelerates dynamic aspect deployment by several orders of magnitude relative to mainstream aspect-oriented environments. We also provide a detailed comparison of alternative implementations of execution environments with support for dynamic aspect deployment.

[1]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[2]  Wim Vanderperren,et al.  JAsCo: an aspect-oriented approach tailored for component based software development , 2003, AOSD '03.

[3]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[4]  Toshiaki Yasue,et al.  Effectiveness of cross-platform optimizations for a java just-in-time compiler , 2003, OOPSLA '03.

[5]  David Detlefs,et al.  Inlining of Virtual Methods , 1999, ECOOP.

[6]  Toshiaki Yasue,et al.  An Empirical Study of Method In-lining for a Java Just-in-Time Compiler , 2002, Java Virtual Machine Research and Technology Symposium.

[7]  Mira Mezini,et al.  An Overview of CaesarJ , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[8]  Hidehiko Masuhara,et al.  Compilation Semantics of Aspect-Oriented Programs , 2002 .

[9]  Matthew Arnold,et al.  Thin Guards: A Simple and Effective Technique for Reducing the Penalty of Dynamic Class Loading , 2002, ECOOP.

[10]  Hidehiko Masuhara,et al.  Modeling Crosscutting in Aspect-Oriented Mechanisms , 2003, ECOOP.

[11]  Gustavo Alonso,et al.  Dynamic weaving for aspect-oriented programming , 2002, AOSD '02.

[12]  Hridesh Rajan,et al.  Eos: instance-level aspects for integrated system design , 2003, ESEC/FSE-11.

[13]  Michael Haupt,et al.  Virtual machine support for dynamic join points , 2004, AOSD '04.

[14]  Hidehiko Masuhara,et al.  A Compilation and Optimization Model for Aspect-Oriented Programs , 2003, CC.

[15]  Wim Vanderperren,et al.  Adaptive programming in JAsCo , 2005, AOSD '05.

[16]  Stephen J. Fink,et al.  Design, implementation and evaluation of adaptive recompilation with on-stack replacement , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..

[17]  Gustavo Alonso,et al.  Just-in-time aspects: efficient dynamic weaving for Java , 2003, AOSD '03.

[18]  Jonas Boner AspectWerkz - dynamic AOP for Java , 2004 .

[19]  Michael Eichberg,et al.  An execution layer for aspect-oriented programming languages , 2005, VEE '05.

[20]  Nikola Grcevski,et al.  Java Just-in-Time Compiler and Virtual Machine Improvements for Server and Middleware Applications , 2004, Virtual Machine Research and Technology Symposium.

[21]  Matthew Arnold,et al.  Online feedback-directed optimization of Java , 2002, OOPSLA '02.

[22]  Optimizing JAsCo dynamic AOP through HotSwap and Jutta , 2004 .

[23]  Jim Hugunin,et al.  Advice weaving in AspectJ , 2004, AOSD '04.

[24]  Dayong Gu,et al.  Code Layout as a Source of Noise in JVM Performance , 2005, Stud. Inform. Univ..

[25]  Craig Chambers,et al.  Debugging optimized code with dynamic deoptimization , 1992, PLDI '92.

[26]  Mauricio J. Serrano,et al.  The starjit compiler: a dynamic compiler for managed runtime environments , 2003 .

[27]  Michael Haupt,et al.  Envelope-Based Weaving for Faster Aspect Compilers , 2005, NODe/GSEM.

[28]  Cliff Click,et al.  The Java HotSpot Server Compiler , 2001, Java Virtual Machine Research and Technology Symposium.

[29]  Cliff Click,et al.  The java hotspot TM server compiler , 2001 .

[30]  Naoyasu Ubayashi,et al.  Association aspects , 2004, AOSD '04.

[31]  Wim Vanderperren,et al.  Stateful Aspects in JAsCo , 2005, SC@ETAPS.

[32]  Toshiaki Yasue,et al.  A dynamic optimization framework for a Java just-in-time compiler , 2001, OOPSLA '01.