skip to main content
article

Adapting virtual machine techniques for seamless aspect support

Published: 16 October 2006 Publication History

Abstract

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.

References

[1]
Homepage of the aspect-oriented extension of the SPEC JVM98 Benchmarks suite. http://www.st.informatik.tu-darmstadt.de/DeployBench.]]
[2]
Homepage of the Envelope-Aware Jikes RVM. http://www.st.informatik.tu-darmstadt.de/EBW-aware.]]
[3]
Jasco homepage. http://ssel.vub.ac.be/jasco/.]]
[4]
Javassist homepage. http://www.csg.is.titech.ac.jp/~chiba/javassist/.]]
[5]
abc (AspectBench Compiler) homepage. http://aspectbench.org/.]]
[6]
A.-R. Adl-Tabatabai, J. Bharadwaj, D.-Y. Chen, A. Ghuloum, V. Menon, B. Murphy, M. Serrano, and T. Shpeisman. The StarJIT compiler: A dynamic compiler for managed runtime environments. Intel Technology Journal, 7(1):19--31, Feb. 2003.]]
[7]
I. Aracic, V. Gasiunas, M. Mezini, and K. Ostermann. Overview of caesarj. Transactions on AOSD I, LNCS, 3880:135--173, 2006.]]
[8]
M. Arnold, M. Hind, and B. G. Ryder. Online feedback-directed optimization of Java. ACM SIG-PLAN Notices, 37(11):111--129, Nov. 2002. In Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA).]]
[9]
M. Arnold and B. G. Ryder. Thin guards: A simple and effective technique for reducing the penalty of dynamic class loading. In 16th European Conference on Object-Oriented Programming (ECOOP), volume 2374 of LNCS, June 2002.]]
[10]
AspectJ homepage. http://www.eclipse.org/aspectj/.]]
[11]
AspectWerkz homepage. http://aspectwerkz.codehaus.org/.]]
[12]
BAT homepage. http://www.st.informatik.tu-darmstadt.de/BAT.]]
[13]
C. Bockisch, M. Haupt, M. Mezini, and R. Mitschke. Evenelope-based Weaving for Faster Aspect Compilers. In In Net.ObjectDays, 2005.]]
[14]
C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual Machine Support for Dynamic Join Points. In AOSD 2004 Proceedings. ACM Press, 2004.]]
[15]
J. Bonér. AspectWerkz - Dynamic AOP for Java. http://codehaus.org/~jboner/papers/aosd2004_aspectwerkz.pdf, 2003.]]
[16]
J. Brichau, M. Haupt, N. Leidenfrost, A. Rashid, L. Bergmans, T. Staijen, A. Charfi, C. Bockisch, I. Aracic, V. Gasiunas, K. Ostermann, L. Seinturier, R. Pawlak, M. Südholt, J. Noyé, D. Suvée, M. D'Hondt, P. Ebraert, W. Vanderperren, M. Pinto, L. Fuentes, E. Truyen, A. Moors, M. Bynens, W. Joosen, S. Katz, A. Coyler, H. Hawkins, A. Clement, and O. Spinczyk. Report describing survey of aspect languages and models. Technical Report AOSD-Europe Deliverable D12, AOSD-Europe-VUB-01, Vrije Universiteit Brussel, 17 May 2005 2005]]
[17]
CaesarJ homepage. http://caesarj.org/.]]
[18]
Api specification for package java.lang.instrument. http://java.sun.com/j2se/1.5.0/docs/api/java/lang/instrument/package-summary.html.]]
[19]
D. Detlefs and O. Agesen. Inlining of virtual methods. In 13th European Conference on Object-Oriented Programming (ECOOP), volume 1628 of LNCS, pages 258--278, June 1999.]]
[20]
S. J. Fink and F. Qian. Design, implementation and evaluation of adaptive recompilation with on-stack replacement. In International Symposium on Code Generation and Optimization (CGO), pages 241--252, 2003.]]
[21]
N. Grcevski, A. Kilstra, K. Stoodley, M. Stoodley, and V. Sundaresan. Java just-in-time compiler and virtual machine improvements for server and middleware applications. In 3rd Virtual Machine Research and Technology Symposium (VM), May 2004.]]
[22]
D. Gu, C. Verbrugge, and E. Gagnon. Code layout as a source of noise in JVM performance. In Component And Middleware Performance workshop, OOPSLA 2004, 2004.]]
[23]
M. Haupt, M. Mezini, C. Bockisch, T. Dinkelaker, M. Eichberg, and M. Krebs. An Execution Layer for Aspect-Oriented Programming Languages. In J. Vitek, editor, Proceedings of the First International Conference on Virtual Execution Environments (VEE'05), pages 142--152. ACM Press, June 2005.]]
[24]
E. Hilsdale and J. Hugunin. Advice weaving in aspectj. In AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software development, pages 26--35, New York, NY, USA, 2004. ACM Press.]]
[25]
U. Hölzle, C. Chambers, and D. Ungar. Debugging optimized code with dynamic deoptimization. In Proceedings of the ACM SIGPLAN'92 Conference on Programming Language Design and Implementation (PLDI), pages 32--43, San Francisco, California, 17-19 June 1992. SIGPLAN Notices 27(7), July 1992.]]
[26]
K. Ishizaki, M. Takeuchi, K. Kawachiya, T. Suganuma, O. Gohda, T. Inagaki, A. Koseki, K. Ogata, M. Kawahito, T. Yasue, T. Ogasawara, T. Onodera, H. Komatsu, and T. Nakatani. Effectiveness of cross-platform optimizations for a Java just-in-time compiler. ACM SIG-PLAN Notices, 38(11):187--204, Nov. 2003.]]
[27]
The Java Reflection API. http://java.sun.com/j2se/1.4.2/docs/api/index.html.]]
[28]
The Jikes Research Virtual Machine. http://jikesrvm.sourceforge.net/.]]
[29]
Jni (java native interface) homepage. http://java.sun.com/j2se/1.4.2/docs/guide/jni/.]]
[30]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An Overview of AspectJ. In J. Lindskov Knudsen, editor, Proc. ECOOP 2001, volume 2072 of LNCS, pages 327--353. Springer, 2001.]]
[31]
T. Lindholm and F. Yellin, editors. The Java(TM) Virtual Machine Specification (2nd Edition). Addison-Wesley, 1999.]]
[32]
H. Masuhara and G. Kiczales. Modeling crosscutting in aspect-oriented mechanisms. In 17th European Conference on Object-Oriented Programming (ECOOP), pages 2--28, 2003.]]
[33]
H. Masuhara, G. Kiczales, and C. Dutchyn. Compilation semantics of aspect-oriented programs. In Foundations Of Aspect-Oriented Languages (Workshop at AOSD 2002), April 2002.]]
[34]
H. Masuhara, G. Kiczales, and C. Dutchyn. A Compilation and Optimization Model for Aspect-Oriented Programs. In G. Hedin, editor, Proc. CC 2003, volume 2622 of LNCS, pages 46--60. Springer, 2003.]]
[35]
M. Paleczny, C. Vick, and C. Click. The Java Hotspot server compiler. In Java Virtual Machine Research and Technology Symposium (JVM), pages 1--12, Apr. 2001.]]
[36]
A. Popovici, G. Alonso, and T. Gross. Just-In-Time Aspects: Efficient Dynamic Weaving for Java. In Proceedings of the 2nd International Conference on Aspect-Oriented Software Development, pages 100--109. ACM Press, 2003.]]
[37]
A. Popovici, T. Gross, and G. Alonso. Dynamic Homogenous AOP with PROSE. Technical report, Department of Computer Science, ETH Zürich, Zürich, Switzerland, March 2001.]]
[38]
A. Popovici, T. Gross, and G. Alonso. Dynamic Weaving for Aspect-Oriented Programming. In AOSD '02: Proceedings of the 1st International Conference on Aspect-Oriented Software Development, pages 141--147. ACM Press, 2002.]]
[39]
The PROSE Homepage. http://prose.ethz.ch/Wiki.jsp.]]
[40]
H. Rajan and K. Sullivan. Eos: instance-level aspects for integrated system design. In ESEC/FSE-11: Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering, pages 297--306, New York, NY, USA, 2003. ACM Press.]]
[41]
K. Sakurai, H. Masuhara, N. Ubayashi, S. Matsuura, and S. Komiya. Association aspects. In AOSD, pages 16--25, 2004.]]
[42]
SPEC JVM98 homepage. http://www.spec.org/osg/jvm98/.]]
[43]
The Steamloom Homepage. http://www.st.informatik.tu-darmstadt.de/static/pages/projects/AORTA/Steamloom.jsp.]]
[44]
T. Suganuma, T. Yasue, M. Kawahito, H. Komatsu, and T. Nakatani. A dynamic optimization framework for a Java just-in-time compiler. ACM SIG- PLAN Notices, 36(11):180--195, Nov. 2001. In Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA).]]
[45]
T. Suganuma, T. Yasue, and T. Nakatani. An empirical study of method in-lining for a Java just-in-time compiler. In Java Virtual Machine Research and Technology Symposium (JVM), pages 91--104, Aug. 2002.]]
[46]
D. Suvée, W. Vanderperren, and V. Jonckers. JAsCo: an Aspect-Oriented Approach Tailored for Component Based Software Development. In Proc. AOSD 2003, pages 21--29, 2003.]]
[47]
W. Vanderperren and D. Suvee. Optimizing jasco dynamic aop through hotswap and jutta. In Proceedings of the 2004 Dynamic Aspects Workshop, 2004.]]
[48]
W. Vanderperren, D. Suvée, M. A. Cibrán, and B. D. Fraine. Stateful Aspects in JAsCo. http://ssel.vub.ac.be/jasco/media/sc2005.pdf.]]
[49]
W. Vanderperren, D. Suvée, B. Verheecke, M. A. Cibrán, and V. Jonckers. Adaptive programming in jasco. In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 75--86, New York, NY, USA, 2005. ACM Press.]]
[50]
A. Vasseur. Dynamic AOP and Runtime Weaving for Java - How does AspectWerkz Address It? http://aspectwerkz.codehaus.org/downloads/papers/aosd2004-daw-aspectwerkz.pdf, 2004.]]
[51]
A. Vasseur, J. Bonér, and J. Dahlstedt. JRockit JVM Support for AOP. http://dev2dev.bea.com/pub/a/2005/08/jvm_aop_1.html.]]
[52]
Xalan-Java version 2.6.0. http://xml.apache.org/xalan-j/.]]

Cited By

View all

Index Terms

  1. Adapting virtual machine techniques for seamless aspect support

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 41, Issue 10
    Proceedings of the 2006 OOPSLA Conference
    October 2006
    480 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1167515
    Issue’s Table of Contents
    • cover image ACM Conferences
      OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
      October 2006
      514 pages
      ISBN:1595933484
      DOI:10.1145/1167473
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 16 October 2006
    Published in SIGPLAN Volume 41, Issue 10

    Check for updates

    Author Tags

    1. aspect weaving
    2. aspect-oriented programming
    3. dynamic deployment
    4. envelope-based weaving
    5. virtual machine support

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 22 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2018)Scoping strategies for distributed aspectsScience of Computer Programming10.1016/j.scico.2010.06.01175:12(1235-1261)Online publication date: 31-Dec-2018
    • (2013)An Analysis of Language-Level Support for Self-Adaptive SoftwareACM Transactions on Autonomous and Adaptive Systems10.1145/2491465.24914668:2(1-29)Online publication date: 1-Jul-2013
    • (2010)Supporting dynamic aspect-oriented featuresACM Transactions on Software Engineering and Methodology10.1145/1824760.182476420:2(1-34)Online publication date: 8-Sep-2010
    • (2009)AspectOptima: A Case Study on Aspect Dependencies and InteractionsTransactions on Aspect-Oriented Software Development V10.1007/978-3-642-02059-9_6(187-234)Online publication date: 2009
    • (2013)Efficient language implementation with ALIA4J and EMFTextProceedings of the 12th annual international conference companion on Aspect-oriented software development10.1145/2457392.2457398(7-10)Online publication date: 24-Mar-2013
    • (2011)Towards a domain-specific aspect language for dynamic program analysisProceedings of the sixth annual workshop on Domain-specific aspect languages10.1145/1960496.1960500(9-11)Online publication date: 21-Mar-2011
    • (2011)EScalaProceedings of the tenth international conference on Aspect-oriented software development10.1145/1960275.1960303(227-240)Online publication date: 21-Mar-2011
    • (2011)Flexible and efficient profiling with aspect-oriented programmingConcurrency and Computation: Practice & Experience10.1002/cpe.176023:15(1749-1773)Online publication date: 1-Oct-2011
    • (2010)Optimizing aspect-oriented mechanisms for embedded applicationsProceedings of the 48th international conference on Objects, models, components, patterns10.5555/1894386.1894394(137-153)Online publication date: 28-Jun-2010
    • (2010)Optimizing Aspect-Oriented Mechanisms for Embedded ApplicationsObjects, Models, Components, Patterns10.1007/978-3-642-13953-6_8(137-153)Online publication date: 2010
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media