Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1066677.1066983acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
Article

Supporting efficient dynamic aspects through reflection and dynamic compilation

Published: 13 March 2005 Publication History

Abstract

As systems grow more and more complex, raising severe evolution and management difficulties, computationnal reflection and aspect-orientation have proven to enforce separation of concerns principles and thus to address those issues. However, most of the existing solutions rely either on a static source code manipulation or on the introduction of extra-code (and overhead) to support dynamic adaptation. Whereas those approaches represent the extreme of a spectre, developpers are left with this rigid tradeoff between performance and dynamism. A first step toward a solution was the introduction of specialized virtual machines to support dynamic aspects into the core of the execution engine. However, using such dedicated runtimes limits applications' portability and interoperability.In order to reconcile dynamism and performance without introducing portability and interoperability issues, we propose a dynamic reflexive runtime that uses reflection and dynamic compilation to allow application-specific dynamic weaving strategics, whithout introducing extra-overhead compared to static monolithic weavers.

References

[1]
Jac homepage. http://jac.aopsys.com/.]]
[2]
Jboss aop home page. http://www.jboss.org/products/aop.]]
[3]
The jikes research virtual machine. http://www-124.ibm.com/developerworks/oss/jikesrvm/.]]
[4]
B. Blanchet. Escape Analysis for Java: Theory and Practice. ACM Transactions on Programming Languages and Systems, 25(6):713--775, Nov. 2003.]]
[5]
C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual machine support for dynamic join points. In Proceedings of the 3rd AOSD Conference, pages 83--92, Lancaster, UK, march 2004.]]
[6]
J. Boner. Aspectwerkz - dynamic aop for java. http://codehaus.org/ jboner/papers/ aosd2004_aspectwerkz.pdf, 2004.]]
[7]
S. Chiba. Javassist --- a reflection-based programming wizard for java. In Proceedings of OOPSLA '98 Workshop on Reflective Programming in C++ and Java, Oct. 1998.]]
[8]
S. Chiba and M. Nishizawa. An easy-to-use toolkit for efficient java bytecode translators. In Proceedings of the second international conference on Generative programming and component engineering table (GPCE'03), pages 364--376, Erfurt, Germany, 2003.]]
[9]
M. Dahn, J. van Zyl, and E. Haase. BCEL - The ByteCode Engineneering Library - Manual. http://jakarta.apache.org/bccl/manual.html.]]
[10]
M. Golm. Design and implementation of a meta architecture for java. Master's thesis, University of Erlangen, Jan 1997.]]
[11]
M. Golm. metaxa and the future of reflection. In OOPSLA Workshop on Reflective Programming in C++ and Java, Vancouver, British Columbia, Oct. 1998.]]
[12]
J. Gradecki and N. Lesiecki. Mastering AspectJ: Aspect-Oriented Programming in Java. 2003.]]
[13]
ISO International Organization for Standardization. Information Technology - Open Distributed Processing - Reference Model, ISO/IEC 10746-(1-4) edition, 1996--1998.]]
[14]
Object Web. Aspect-Oriented Programming with JAC. http://jac.objectweb.org/does/programmer_guide.html.]]
[15]
F. Ogel, G. Thomas, I. Piumarta, A. Galland, B. Folliot, and C. Baillarguet. Towards Active Applications: the Virtual Virtual Machinc Approach. New Trends in Computer Science and Engineering, 2003.]]
[16]
A. Oliva and L. Buzato. The design and implementation of guaraná. In 5th USENIX Conference on Object-Oriented Technologies and Systems (COOTS '99), San Diego, California, USA, May 1999.]]
[17]
A. Oliva, I. Garcia, and L. Buzato. Guaraná: a tutorial. Technical report ic-98-31, Univerisidadc Estadual de Campinas, Sept. 1998.]]
[18]
A. Oliva., I. Garcia, and L. Buzato. The implementation of guaraná, on java. Technical report ic-98-32, Univerisidade Estadual de Campinas, Sept. 1998.]]
[19]
A. Oliva, I. Garcia, and L. Buzato. The reflective architecture of guaraná. Technical report ic-98-14, Univerisidade Estadual de Campinas, Sept. 1998.]]
[20]
I. Piumarta. The Virtual Processor: Fast, Architecture-Neutral Dynamic Code Generation. In the 3rd USENIX symposium on Virtual Machine Research and Technology, San Jose, California, USA, may 2004.]]
[21]
M. Tatsubori. An extension mechanism for the java language. Master's thesis, Tokyo Institute of Technology, University of Tsukuba, 1999. Master of Engineering Dissertation, Graduate School of Engineering.]]
[22]
M. Tatsubori, S. Chiba, K. Itano, and M.-O. Killijian. Openjava: A class-based macro system for java. In Reflection and Software Ingineering, pages 119--135. Lecture Notes in Computer Science 1826, Springer-Verlag, July 2000.]]
[23]
G. Thomas, F. Ogel, A. Galland, B. Folliot, and I. Piumarta. Building a flexible Java runtime upon a flexible compiler. International Journal on Computers and Applications Special Issue on 'System & Networking for Smart Objects', january 2005.]]
[24]
I. Welch and R. Stroud. Dalang --- a reflective extension for java. Technical Report CS-TR-672, University of Newcastle upon Tyne, September 1999.]]
[25]
I. Welch and R. Stroud. Kava - using bytccode rewriting to add behavioural reflection to java. In Proceedings of the 6th USENIX Conference on Object-Oriented Technologies and Systems (COOTS 2001), pages 119--130, San Antonio, Texas, USA, January 2001. USENIX Association 2001.]]
[26]
I. Welch and R. J. Stroud. From dalang to kava --- the evolution of a reflective java extension. In Meta-Level Architectures and Reflection, Second International Conference, Reflection'99, Saint-Malo, France, July 1999.]]
[27]
Z. Wu and S. Schwiderski. Reflextive java: Making java even more reflexive. Ansa phase 3, ANSA - APM Limited, Cambridge, UK, Feb 1997.]]

Cited By

View all
  • (2008)Designing highly flexible virtual machines: the JnJVM experienceSoftware: Practice and Experience10.1002/spe.88738:15(1643-1675)Online publication date: 6-Jun-2008
  • (2006)Transparent and dynamic code offloading for java applicationsProceedings of the 2006 Confederated international conference on On the Move to Meaningful Internet Systems: CoopIS, DOA, GADA, and ODBASE - Volume Part II10.1007/11914952_51(1790-1806)Online publication date: 29-Oct-2006

Index Terms

  1. Supporting efficient dynamic aspects through reflection and dynamic compilation

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    SAC '05: Proceedings of the 2005 ACM symposium on Applied computing
    March 2005
    1814 pages
    ISBN:1581139640
    DOI:10.1145/1066677
    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: 13 March 2005

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. AOP
    2. computational reflection
    3. performance

    Qualifiers

    • Article

    Conference

    SAC05
    Sponsor:
    SAC05: The 2005 ACM Symposium on Applied Computing
    March 13 - 17, 2005
    New Mexico, Santa Fe

    Acceptance Rates

    Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)1
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 24 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2008)Designing highly flexible virtual machines: the JnJVM experienceSoftware: Practice and Experience10.1002/spe.88738:15(1643-1675)Online publication date: 6-Jun-2008
    • (2006)Transparent and dynamic code offloading for java applicationsProceedings of the 2006 Confederated international conference on On the Move to Meaningful Internet Systems: CoopIS, DOA, GADA, and ODBASE - Volume Part II10.1007/11914952_51(1790-1806)Online publication date: 29-Oct-2006

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media