skip to main content
article

Efficient control flow quantification

Published: 16 October 2006 Publication History

Abstract

Aspect-oriented programming (AOP) is increasingly gaining in popularity. However, the focus of aspect-oriented language research has been mostly on language design issues; efficient implementation techniques have been less popular. As a result, the performance of certain AOP constructs is still poor. This is in particular true for constructs that rely on dynamic properties of the execution (e.g., the cflow construct).In this paper, we present efficient implementation techniques for cflow that exploit direct access to internal structures of the virtual machine running an application, such as the call stack, as well as the integration of these techniques into the just-in-time compiler code generation process.Our results show that AOP has the potential to make programs that need to define control flow-dependent behavior not only more modular but also more efficient. By making means for control flow-dependent behavior part of the language, AOP opens the possibility of applying sophisticated compiler optimizations that are out of reach for application programmers.

References

[1]
abc (AspectBench Compiler) Home Page. http://aspectbench.org/.
[2]
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.
[3]
B. Alpern et al. The Jalapeño Virtual Machine. IBM Systems Journal, 39(1):211--238, February 2000.
[4]
Matthew Arnold and Barbara G. Ryder. Thin guards: A simple and effective technique for reducing the penalty of dynamic class loading. In ECOOP '02: Proceedings of the 16th European Conference on Object-Oriented Programming, pages 498--524, London, UK, 2002. Springer-Verlag.
[5]
AspectJ Home Page. http://www.eclipse.org/aspectj/.
[6]
AspectS Home Page. http://www-ia.tu-ilmenau.de/~hirsch/Projects/Squeak/AspectS/.
[7]
AspectWerkz Home Page. http://aspectwerkz.codehaus.org/.
[8]
P. Avgustinov et al. Optimising AspectJ. In PLDI '05: Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 117--128. ACM Press, 2005.
[9]
C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual Machine Support for Dynamic Join Points. In Proc. AOSD 2004. ACM Press, 2004.
[10]
J. Bonér. What Are the Key Issues for Commercial AOP Use: how Does AspectWerkz Address Them? In Proc. AOSD 2004, pages 5--6. ACM Press, 2004.
[11]
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
[12]
T. Dinkelaker, M. Haupt, R. Pawlak, L. D. Benavides Navarro, and V. Gasiunas. Inventory of aspect-oriented execution models. Technical Report AOSD-Europe Deliverable D40, AOSD-Europe-TUD-4, Darmstadt University of Technology, 28 February 2006.
[13]
B. Dufour, C. Goard, L. Hendren, C. Verbrugge, O. de Moor, and G. Sittampalam. Measuring the Dynamic Behaviour of AspectJ Programs. In Proc. OOPSLA 2004, 2004.
[14]
R. E. Filman, T. Elrad, S. Clarke, and M. Akcşit, editors. Aspect-Oriented Software Development. Addison-Wesley, 2005.
[15]
Glassbox-Inspector Home Page. https://glassbox-inspector.dev.java.net/.
[16]
B. Harbulot and J. R. Gurd. Using aspectj to separate concerns in parallel scientific java code. In AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software development, pages 122--131. ACM Press, 2004.
[17]
M. Haupt, M. Mezini, C. Bockisch, T. Dinkelaker, M. Eichberg, and M. Krebs. An Execution Layer for Aspect-Oriented Programming Languages. In Proc. VEE 2005. ACM Press, June 2005.
[18]
R. Hirschfeld. AspectS - Aspect-Oriented Programming with Squeak. In M. Aksit, M. Mezini, and R. Unland, editors, Objects, Components, Architectures, Services, and Applications for a Networked World, volume 2591 of LNCS, pages 216--232. Springer, 2003.
[19]
JAsCo Home Page. http://ssel.vub.ac.be/jasco/.
[20]
JBoss AOP Home Page. http://www.jboss.com/products/aop.
[21]
The Jikes Research Virtual Machine. http://jikesrvm.sourceforge.net/.
[22]
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.
[23]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Videira Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In M. Aksit and S. Matsuoka, editors, ECOOP '97: Object-Oriented Programming, volume 1241 of Lecture Notes in Computer Science, pages 220--242. Springer, 1997.
[24]
Ramnivas Laddad. AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications Co., Greenwich, CT, USA, 2003.
[25]
Karl Lieberherr, David H. Lorenz, and Pengcheng Wu. A case for statically executable advice: checking the law of demeter with aspectj. In AOSD '03: Proceedings of the 2nd international conference on Aspect-oriented software development, pages 40--49, New York, NY, USA, 2003. ACM Press.
[26]
H. Masuhara and G. Kiczales. Modeling Crosscutting in Aspect-Oriented Mechanisms. In Proc. ECOOP 2003, 2003.
[27]
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.
[28]
P. Avgustinov and others. abc: an Extensible AspectJ Compiler. In Proc. AOSD'05, pages 87--98. ACM Press, 2005.
[29]
P. Costanza and R. Hirschfeld. Language Constructs for Context-Oriented Programming: an Overview of ContextL. In Dynamic Languages Symposium (DLS) '05, co-organized with OOPSLA'05. ACM Press, 2005.
[30]
P. Costanza and R. Hirschfeld and W. de Meuter. Efficient Layer Activation for Switching Context-Dependent Behavior. In Joint Modular Languages Conference 2006 (JMLC2006). Springer, 2006.
[31]
D. Sereni and O. de Moor. Static analysis of aspects. In AOSD '03: Proceedings of the 2nd international conference on Aspect-oriented software development, pages 30--39. ACM Press, 2003.
[32]
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.

Cited By

View all
  • (2016)Unanticipated Context Awareness for Software Configuration Access Using the getenv APIComputer and Information Science10.1007/978-3-319-40171-3_4(41-57)Online publication date: 17-Jun-2016
  • (2015)Global and Thread-Local Activation of Contextual Program Execution EnvironmentsProceedings of the 2015 IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing Workshops10.1109/ISORCW.2015.52(34-41)Online publication date: 13-Apr-2015
  • (2014)Program Execution Environments as Contextual ValuesProceedings of 6th ACM International Workshop on Context-Oriented Programming10.1145/2637066.2637074(1-6)Online publication date: 28-Jul-2014
  • Show More Cited By

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-oriented programming
  2. control flow
  3. 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 18 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2016)Unanticipated Context Awareness for Software Configuration Access Using the getenv APIComputer and Information Science10.1007/978-3-319-40171-3_4(41-57)Online publication date: 17-Jun-2016
  • (2015)Global and Thread-Local Activation of Contextual Program Execution EnvironmentsProceedings of the 2015 IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing Workshops10.1109/ISORCW.2015.52(34-41)Online publication date: 13-Apr-2015
  • (2014)Program Execution Environments as Contextual ValuesProceedings of 6th ACM International Workshop on Context-Oriented Programming10.1145/2637066.2637074(1-6)Online publication date: 28-Jul-2014
  • (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)Scoping strategies for distributed aspectsScience of Computer Programming10.1016/j.scico.2010.06.01175:12(1235-1261)Online publication date: 1-Dec-2010
  • (2010)Late Binding of AspectJ AdviceObjects, Models, Components, Patterns10.1007/978-3-642-13953-6_10(173-191)Online publication date: 2010
  • (2008)Lightweight virtual machine support for AspectJProceedings of the 7th international conference on Aspect-oriented software development10.1145/1353482.1353504(180-190)Online publication date: 31-Mar-2008
  • (2008)Aspect‐Oriented Software Development: an IntroductionWiley Encyclopedia of Computer Science and Engineering10.1002/9780470050118.ecse022(1-10)Online publication date: 13-Jun-2008
  • (2014)Towards Reactive Programming for Object-Oriented ApplicationsTransactions on Aspect-Oriented Software Development XI10.1007/978-3-642-55099-7_7(227-261)Online publication date: 2014
  • (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
  • 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