skip to main content
10.1145/1064979.1065000acmconferencesArticle/Chapter ViewAbstractPublication PagesveeConference Proceedingsconference-collections
Article

An execution layer for aspect-oriented programming languages

Published: 11 June 2005 Publication History

Abstract

Language mechanisms deserve language implementation effort. While this maxim has led to sophisticated support for language features specific to object-oriented, functional and logic programming languages, aspect-oriented programming languages are still mostly implemented using postprocessors. The Steamloom virtual machine, based on IBM's Jikes RVM, provides support for aspect-oriented programming at virtual machine level. A bytecode framework called BAT was integrated with the Jikes RVM to replace its bytecode management logic. While preserving the functionality needed by the VM, BAT also allows for querying application code for join point shadows, avoiding redundancy in bytecode representation. Performance measurements show that an AOP-enabled virtual machine like Steamloom does not inflict unnecessary performance penalties on a running application; when it comes to executing AOP-related operations, there even are significant performance gains compared to other approaches.

References

[1]
B. Alpern, D. Attanasio, J. J. Barton, A. Cocchi, S. F. Hummel, D. Lieber, M. Mergen, T. Ngo, J. Shepherd, and S. Smith. Implementing Jalapeño in Java. In 1999 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'99). ACM Press, 1999.
[2]
B. Alpern and et al. The Jalape#241;o Virtual Machine. IBM System Journal, 39(1):211--238, February 2000.
[3]
AspectJ Home Page. http://www.eclipse.org/ aspectj/.
[4]
AspectWerkz Home Page. http://aspectwerkz.codehaus.org/.
[5]
P. Avgustinov et al. abc: An Extensible AspectJ Compiler. In Proc. AOSD 2005. ACM Press, 2005. to appear.
[6]
BAT Home Page. http://www.st.informatik.tu-darmstadt.de/ pages/ projects/BAT/.
[7]
Byte Code Engineering Library (BCEL) Manual. http://jakarta.apache.org/ bcel/ manual.html.
[8]
C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual Machine Support for Dynamic Join Points. In Proc. AOSD 2004. ACM Press, 2004.
[9]
J. M. Bull, L. A. Smith, M. D. Westhead, D. S. Henty, and R. A. Davey. A Benchmark Suite for High Performance Java. Concurrency: Practice and Experience, 12(6):375--388, 2000.
[10]
M. G. Burke, J.-D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. J. Serrano, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeño Dynamic Optimizing Compiler for Java. In Java Grande 1999 Proceedings, pages 129--141. ACM Press, 1999.
[11]
M. Dmitriev. Towards Flexible and Safe Technology for Runtime Evolution of Java Language Applications. In Workshop on Engineering Complex Object-Oriented Systems for Evolution, Proceedings (at OOPSLA 2001), 2001.
[12]
R. Douence and Mario Südholt. A Model and a Tool for Event-Based Aspect-Oriented Programming (EAOP). Technical Report 02/11/INFO, Ecole des Mines de Nantes, 2002.
[13]
EAOP Home Page. http://www.emn.fr/x-info/eaop/.
[14]
R. E. Filman, M. Haupt, K. Mehner, and M. Mezini (eds.). Proceedings of the 2003 Dynamic Aspects Workshop. Technical Report RIACS Technical Report No. 04.01, RIACS, 2004.
[15]
S. Fink and F. Qian. Design, Implementation and Evaluation of Adaptive Recompilation with On-Stack Replacement. http://www.research.ibm.com/ people/s/sfink/papers/cgo03.ps.gz, 2003.
[16]
M. Haupt and M. Mezini. Virtual Machine Support for Aspects with Advice Instance Tables. First French Workshop on Aspect-Oriented Programming (JFDLPA), Paris, France, Sep. 14th, 2004. http:// www.st.informatik.tu-darmstadt.de/database/ publications/ data/ JFDLPA04.pdf? id=102.
[17]
M. Haupt and M. Mezini. Micro-Measurements for Dynamic Aspect-Oriented Systems. In M. Weske and P. Liggesmeyer, editors, Proc. Net.ObjectDays 2004, volume 3263 of LNCS. Springer, 2004.
[18]
E. Hilsdale and J. Hugunin. Advice Weaving in AspectJ. In Proc. AOSD 2004. ACM Press, 2004.
[19]
JAsCo Home Page. http://ssel.vub.ac.be/jasco/.
[20]
JavaGrande Benchmarks Home Page. http://www.dhpc.adelaide.edu.au/projects/javagrande/benchmarks/.
[21]
JBoss AOP Home Page. http://www.jboss.org/ developers/ projects/ jboss/ aop.jsp.
[22]
Jikes Bytecode Toolkit Home Page. http://www.alphaworks.ibm.com/tech/jikesbt/.
[23]
The Jikes Research Virtual Machine. http://www-124.ibm.com/developerworks/oss/jikesrvm/.
[24]
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.
[25]
H. Masuhara and G. Kiczales. A Modeling Framework for Aspect-Oriented Mechanisms. In Proc. ECOOP 2003, 2003.
[26]
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.
[27]
K. Ostermann, M. Mezini, and C. Bockisch. Expressive Pointcuts for Increased Modularity. In Proc. ECOOP 2005, 2005. to appear.
[28]
A. Popovici, T. Gross, and G. Alonso. Dynamic Weaving for Aspect-Oriented Programming. In G. Kiczales, editor, Proc. AOSD 2002. ACM Press, 2002.
[29]
A. Popovici, T. Gross, and G. Alonso. Just-in-Time Aspects. In Proc. AOSD 2003. ACM Press, 2003.
[30]
PROSE Home Page. http://ikplab11.inf.ethz.ch:9000/ prose/.
[31]
SPECjbb2000 Home Page. http://www.specbench.org/ osg/ jbb2000/.
[32]
SPECjvm98 Home Page. http://www.spec.org/ osg/ jvm98/.
[33]
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.
[34]
W. Vanderperren and D. Suvee. Optimizing JAsCo Dynamic AOP through HotSwap and Jutta. In FilmanHauptMehnerMezini04.

Cited By

View all
  • (2023)Towards Virtual Machine Support for Contextual Role-Oriented Programming LanguagesProceedings of the 15th ACM International Workshop on Context-Oriented Programming and Advanced Modularity10.1145/3605154.3605851(1-8)Online publication date: 17-Jul-2023
  • (2020)Efficient dispatch of multi-object polymorphic call sites in contextual role-oriented programming languagesProceedings of the 17th International Conference on Managed Programming Languages and Runtimes10.1145/3426182.3426186(52-62)Online publication date: 4-Nov-2020
  • (2019)Efficient late binding of dynamic function compositionsProceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3357766.3359543(141-151)Online publication date: 20-Oct-2019
  • Show More Cited By

Index Terms

  1. An execution layer for aspect-oriented programming languages

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    VEE '05: Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
    June 2005
    216 pages
    ISBN:1595930477
    DOI:10.1145/1064979
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 11 June 2005

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. aspect-oriented programming
    2. virtual machine support

    Qualifiers

    • Article

    Conference

    VEE05

    Acceptance Rates

    Overall Acceptance Rate 80 of 235 submissions, 34%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)2
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 18 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Towards Virtual Machine Support for Contextual Role-Oriented Programming LanguagesProceedings of the 15th ACM International Workshop on Context-Oriented Programming and Advanced Modularity10.1145/3605154.3605851(1-8)Online publication date: 17-Jul-2023
    • (2020)Efficient dispatch of multi-object polymorphic call sites in contextual role-oriented programming languagesProceedings of the 17th International Conference on Managed Programming Languages and Runtimes10.1145/3426182.3426186(52-62)Online publication date: 4-Nov-2020
    • (2019)Efficient late binding of dynamic function compositionsProceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3357766.3359543(141-151)Online publication date: 20-Oct-2019
    • (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
    • (2013)JavAdaptor-Flexible runtime updates of Java applicationsSoftware—Practice & Experience10.1002/spe.210743:2(153-185)Online publication date: 1-Feb-2013
    • (2012)Dynamic aspect-oriented programming in javaTransactions on Aspect-Oriented Software Development IX10.5555/2434958.2434962(92-122)Online publication date: 1-Jan-2012
    • (2012)DiSLProceedings of the 11th annual international conference on Aspect-oriented Software Development10.1145/2162049.2162077(239-250)Online publication date: 25-Mar-2012
    • (2012)Dynamic Aspect-Oriented Programming in Java: The HotWave ExperienceTransactions on Aspect-Oriented Software Development IX10.1007/978-3-642-35551-6_3(92-122)Online publication date: 2012
    • (2011)Safe and atomic run-time code evolution for Java and its application to dynamic AOPACM SIGPLAN Notices10.1145/2076021.204812946:10(825-844)Online publication date: 22-Oct-2011
    • (2011)Safe and atomic run-time code evolution for Java and its application to dynamic AOPProceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications10.1145/2048066.2048129(825-844)Online publication date: 22-Oct-2011
    • 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