skip to main content
10.1145/1941054.1941056acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Optimizing the evaluation of patterns in pointcuts

Published: 17 October 2010 Publication History

Abstract

Pointcuts in aspect-oriented programming languages specify runtime events which cause execution of additional functionality. Hereby, pointcuts typically have a pattern-based static component selecting instructions whose execution triggers an event, e.g., a pattern that selects method-call instructions based on the target method's name. Current implementations realize identification of matching instructions by examining all instructions in the executed program and matching them against all patterns found in the program's pointcuts. But such an implementation is slow. An optimized implementation is therefore highly desirable in runtime environments which support the dynamic deployment of aspects; slow pattern evaluation invariably causes a slowdown of the entire application.
The patterns used in pointcuts as well as the signatures against they are matched, i.e., method, constructor, and field signatures, are well structured. We present two case studies that survey patterns and signatures actually occurring in the wild. From the resulting data we derive several heuristics that can drive pattern-evaluation optimizations, both by creating indexes over the relevant instructions and by optimizing the order in which the sub-patterns are evaluated.

References

[1]
P. Avgustinov, A. Christensen, L. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: An extensible Aspect J compiler. In TAOSD. 2006.
[2]
A. J. Bernstein and M. Kifer. Databases and Transaction Processing: An Application-Oriented Approach. Addison-Wesley, 2001.
[3]
S. M. Blackburn, R. Garner, C. Hoffman, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanovic, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In Proceedings of OOPSLA, 2006.
[4]
C. Bockisch. An Efficient and Flexible Implementation of Aspect-Oriented Languages. PhD thesis, Technische Universität Darmstadt, 2009.
[5]
C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual machine support for dynamic join points. In AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software development, pages 83--92, New York, NY, USA, 2004. ACM.
[6]
C. Bockisch and M. Mezini. A flexible architecture for pointcut-advice language implementations. In Proceedings of VMIL, 2007.
[7]
C. Bockisch, A. Sewe, M. Mezini, A. de Roo, W. Havinga, L. Bergmans, and K. de Schutter. Modeling of representative AO languages on top of the reference model. Technical Report AOSD-Europe-TUD-9, Technische Universität Darmstadt, 2008.
[8]
E. Bodden, A. Sewe, J. Sinschek, and M. Mezini. Taming Reflection (Extended version). Technical Report TUD-CS-2010-0066, CASED, 2010.
[9]
S. Chaudhuri. An overview of query optimization in relational systems. In PODS '98: Proceedings of the seventeenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems, pages 34--43, New York, NY, USA, 1998. ACM.
[10]
A. de Roo, M. Hendriks, W. Havinga, P. Dürr, and L. Bergmans. Compose*: A language- and platform-independent aspect compiler for composition filters. In Proceedings of WASDeTT, 2008.
[11]
J. Gosling, B. Joy, G. Steele, and G. Bracha. Java#8482; Language Specification. Addison-Wesley, 3rd edition, 2005.
[12]
M. Haupt. Virtual Machine Support for Aspect-Oriented Programming Languages. PhD thesis, Technische Universität Darmstadt, 2006.
[13]
H. Masuhara and G. Kiczales. Modeling crosscutting in aspect-oriented mechanisms. In Proceedings of ECOOP, 2003.
[14]
H. Masuhara, G. Kiczales, and C. Dutchyn. A compilation and optimization model for aspect-oriented programs. In Proceedings of CC, 2003.
[15]
R. Muschevici, A. Potanin, E. Tempero, and J. Noble. Multiple dispatch in practice. In Proceedings of OOPSLA, 2008.
[16]
R. Ramakrishnan and J. Gehrke. Database Management Systems. McGraw-Hill, 1999.
[17]
P. G. Selinger, M. M. Astrahan, D. D. Chamberlin, R. A. Lorie, and T. G. Price. Access path selection in a relational database management system. In Proceedings of SIGMOD, 1979.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
VMIL '10: Virtual Machines and Intermediate Languages
October 2010
49 pages
ISBN:9781450305457
DOI:10.1145/1941054
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: 17 October 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. aspect-oriented programming
  2. pattern matching
  3. patterns
  4. pointcuts
  5. signatures

Qualifiers

  • Research-article

Conference

SPLASH '10
Sponsor:

Acceptance Rates

Overall Acceptance Rate 4 of 4 submissions, 100%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Jan 2025

Other Metrics

Citations

Cited By

View all

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