skip to main content
10.1145/1353482.1353505acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Nu: a dynamic aspect-oriented intermediate language model and virtual machine for flexible runtime adaptation

Published: 31 March 2008 Publication History

Abstract

A variety of dynamic aspect-oriented language constructs are proposed in recent literature with corresponding, compelling use cases. Such constructs demonstrate the need to dynamically adapt the set of join points intercepted at a fine-grained level. The notion of morphing aspects and continuous weaving is motivated by this need. We propose an intermediate language model called Nu, that extends object-oriented intermediate language models with two fine-grained deployment primitives: bind and remove. These primitives offer a higher level of abstraction as a compilation target for dynamic aspect-oriented language constructs, thereby making it easier to support such constructs.
We present the design and implementation of the Nu model in the Sun Hotspot VM, an industrial strength virtual machine, which serves to show the feasibility of the intermediate language design. Our implementation uses dedicated caching mechanisms to significantly reduce the amortized costs of join point dispatch. Our evaluation shows that the cost of supporting a dynamic deployment model can be reduced to as little as ~1.5%. We demonstrate the potential utility of the intermediate language design by expressing a variety of aspect-oriented source language constructs of dynamic flavor such as CaeserJ's deploy, history-based pointcuts, and control flow constructs in terms of the Nu model.

References

[1]
O. Agesen and D. Detlefs. Mixed-mode bytecode execution. Technical Report TR-2000-87, IBM Research, June 2000.
[2]
B. Alpern et al. The Jikes research virtual machine project: Building an open-source research community. IBM Systems Journal, 44(2), 2005.
[3]
J. Baker and W. Hsieh. Runtime aspect weaving through metaprogramming. In AOSD '02, pages 86--95.
[4]
C. Bockisch, M. Arnold, T. Dinkelaker, and M. Mezini. Adapting virtual machine techniques for seamless aspect support. In OOPSLA '06, pages 109--124.
[5]
C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual machine support for dynamic join points. In AOSD '04, pages 83--92.
[6]
C. Bockisch, M. Mezini, and K. Ostermann. Quantifying over dynamic properties of program execution. In Dynamic Aspects Workshop (DAW05).
[7]
K. Böllert. On weaving aspects. In Proceedings of the Workshop on Object-Oriented Technology, pages 301--302.
[8]
C. Allan et al. Adding trace matching with free variables to AspectJ. In OOPSLA '05.
[9]
R. Douence, P. Fradet, and M. Sudholt. Trace-based aspects, pages 141--150.
[10]
S. Hanenberg, R. Hirschfeld, and R. Unland. Morphing aspects: incompletely woven aspects and continuous weaving. In AOSD '04, pages 46--55.
[11]
M. Haupt and H. Schippers. A machine model for aspect-oriented programming. In ECOOP, pages 501--524.
[12]
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.
[13]
R. Hirschfeld. Aspect-oriented programming with AspectS. In M. Akşit and M. Mezini, editors, Net.Object Days 2002.
[14]
R. Hirschfeld. AspectS - aspect-oriented programming with squeak. In NODe '02: Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World, pages 216--232.
[15]
R. Hirschfeld and S. Hanenberg. Open aspects. Computer Languages, Systems&Structures, 32(2--3):87--108, 2006.
[16]
U. Hölzle and D. Ungar. Reconciling responsiveness with performance in pure object-oriented languages. ACM Trans. Program. Lang. Syst., 18(4):355--400, 1996.
[17]
G. Kiczales. Personal communication with Hridesh Rajan at AOSD'07, 2007.
[18]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In J. L. Knudsen, editor, ECOOP 2001, pages 327--353. Springer-Verlag, Hungary, June 2001.
[19]
G. Kniesel, P. Costanza, and M. Austermann. Jmangler-a framework for load-time transformation of java class files. In SCAM 2001, pages 100--110.
[20]
C. J. Krintz, D. Grove, V. Sarkar, and B. Calder. Reducing the overhead of dynamic compilation. volume 31.
[21]
D. Lafferty and V. Cahill. Language-independent aspect-oriented programming. In OOPSLA '03, pages 1--12.
[22]
S. Liang and G. Bracha. Dynamic class loading in the java virtual machine. In OOPSLA '98, pages 36--44.
[23]
H. Masuhara, Y. Endoh, and A. Yonezawa. A fine-grained join point model for more reusable aspects. In N. Kobayashi, editor, APLAS, volume 4279 of Lecture Notes in Computer Science, pages 131--147.
[24]
M. Mezini and K. Ostermann. Conquering aspects with Caesar. In AOSD '03, pages 90--99.
[25]
G. Myers. A Four Russians algorithm for regular expression pattern matching. Journal of the ACM (JACM), 39(2):432--448, 1992.
[26]
F. Ortin and J. M. Cueva. Dynamic adaptation of application aspects. Journal of Systems and Software, 71(3):229--243, 2004.
[27]
H. Ossher. A direction for research on virtual machine support for concern composition. In VMIL '07: Proceedings of the 1st workshop on Virtual machines and intermediate languages for emerging modularization mechanisms, page 5.
[28]
M. Paleczny, C. Vick, and C. Click. The java HotSpot server compiler. In Java Virtual Machine Research and Technology Symposium.
[29]
Pavel Avgustinov et al. Optimising AspectJ. In PLDI '05, pages 117--128.
[30]
A. Popovici, G. Alonso, and T. Gross. Just-in-time aspects: efficient dynamic weaving for java. In AOSD '03.
[31]
A. Popovici, T. Gross, and G. Alonso. Dynamic weaving for aspect-oriented programming. In AOSD '02, pages 141--147.
[32]
H. Rajan, R. Dyer, Y. Hanna, and H. Narayanappa. Preserving separation of concerns through compilation. In SPLAT 06.
[33]
H. Rajan and K. J. Sullivan. Eos: instance-level aspects for integrated system design. In ESEC/FSE-11, pages 297--306.
[34]
H. Rajan and K. J. Sullivan. Classpects: unifying aspect- and object-oriented language design. In ICSE '05, pages 59--68.
[35]
V. Stolz and E. Bodden. Temporal assertions using AspectJ. In Fifth Workshop on Runtime Verification (RV '05).
[36]
V. Stolz and E. Bodden. Tracechecks: Defining semantic interfaces with temporal logic. Software Composition, pages 147--162, 2006.
[37]
D. Suvée, W. Vanderperren, and V. Jonckers. Jasco: an aspect-oriented approach tailored for component based software development. In AOSD '03, pages 21--29.
[38]
R. J. Walker and K. Viggers. Implementing protocols via declarative event patterns. In FSE-12, pages 159--169.

Cited By

View all
  • (2019)Fully Reflective Execution Environments: Virtual Machines for More Flexible SoftwareIEEE Transactions on Software Engineering10.1109/TSE.2018.281271545:9(858-876)Online publication date: 1-Sep-2019
  • (2013)Language features for software evolution and aspect-oriented interfacesTransactions on Aspect-Oriented Software Development X10.5555/2554488.2554493(148-183)Online publication date: 1-Jan-2013
  • (2013)Language Features for Software Evolution and Aspect-Oriented Interfaces: An Exploratory StudyTransactions on Aspect-Oriented Software Development X10.1007/978-3-642-36964-3_5(148-183)Online publication date: 2013
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
AOSD '08: Proceedings of the 7th international conference on Aspect-oriented software development
March 2008
212 pages
ISBN:9781605580449
DOI:10.1145/1353482
  • Conference Chair:
  • Theo D'Hondt
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

  • AOSA: Aspect-Oriented Software Association

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 31 March 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Nu
  2. aspect-oriented intermediate languages
  3. aspect-oriented virtual machines
  4. invocation
  5. weaving

Qualifiers

  • Research-article

Funding Sources

Conference

AOSD08
Sponsor:
  • AOSA

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2019)Fully Reflective Execution Environments: Virtual Machines for More Flexible SoftwareIEEE Transactions on Software Engineering10.1109/TSE.2018.281271545:9(858-876)Online publication date: 1-Sep-2019
  • (2013)Language features for software evolution and aspect-oriented interfacesTransactions on Aspect-Oriented Software Development X10.5555/2554488.2554493(148-183)Online publication date: 1-Jan-2013
  • (2013)Language Features for Software Evolution and Aspect-Oriented Interfaces: An Exploratory StudyTransactions on Aspect-Oriented Software Development X10.1007/978-3-642-36964-3_5(148-183)Online publication date: 2013
  • (2012)First-Class compositionsTransactions on Aspect-Oriented Software Development IX10.5555/2434958.2434967(216-267)Online publication date: 1-Jan-2012
  • (2012)An object-oriented framework for aspect-oriented languagesProceedings of the 11th annual international conference on Aspect-oriented Software Development10.1145/2162049.2162075(215-226)Online publication date: 25-Mar-2012
  • (2011)Analyzing software updatesProceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software10.5555/1987434.1987469(371-385)Online publication date: 26-Mar-2011
  • (2011)Aspect-based dynamic software updatingProceedings of the tenth international conference on Aspect-oriented software development10.1145/1960275.1960289(105-116)Online publication date: 21-Mar-2011
  • (2011)Analyzing Software Updates: Should You Build a Dynamic Updating Infrastructure?Fundamental Approaches to Software Engineering10.1007/978-3-642-19811-3_26(371-385)Online publication date: 2011
  • (2010)Late binding of AspectJ adviceProceedings of the 48th international conference on Objects, models, components, patterns10.5555/1894386.1894396(173-191)Online publication date: 28-Jun-2010
  • (2010)A model for composable composition operatorsProceedings of the 9th International Conference on Aspect-Oriented Software Development10.1145/1739230.1739248(145-156)Online publication date: 15-Mar-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