ACM Home Page
Please provide us with feedback. Feedback
Optimising aspectJ
Full text PdfPdf (194 KB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation table of contents
Chicago, IL, USA
SESSION: Optimization table of contents
Pages: 117 - 128  
Year of Publication: 2005
ISBN:1-59593-056-6
Also published in ...
Authors
Pavel Avgustinov  Oxford University, United Kingdom
Aske Simon Christensen  University of Aarhus, Denmark
Laurie Hendren  McGill University, Montreal, Canada
Sascha Kuzins  Oxford University, United Kingdom
Jennifer Lhoták  McGill University, Montreal, Canada
Ondřej Lhoták  McGill University, Montreal, Canada
Oege de Moor  Oxford University, United Kingdom
Damien Sereni  Oxford University, United Kingdom
Ganesh Sittampalam  Oxford University, United Kingdom
Julian Tibble  Oxford University, United Kingdom
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 8,   Downloads (12 Months): 60,   Citation Count: 24
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1065010.1065026
What is a DOI?

ABSTRACT

AspectJ, an aspect-oriented extension of Java, is becoming increasingly popular. However, not much work has been directed at optimising compilers for AspectJ. Optimising AOP languages provides many new and interesting challenges for compiler writers, and this paper identifies and addresses three such challenges.First, compiling around advice efficiently is particularly challenging. We provide a new code generation strategy for around advice, which (unlike previous implementations) both avoids the use of excessive inlining and the use of closures. We show it leads to more compact code, and can also improve run-time performance. Second, woven code sometimes includes run-time tests to determine whether advice should execute. One important case is the cflow pointcut which uses information about the dynamic calling context. Previous techniques for cflow were very costly in terms of both time and space. We present new techniques to minimise or eliminate the overhead of cflow using both intra- and inter-procedural analyses. Third, we have addressed the general problem of how to structure an optimising compiler so that traditional analyses can be easily adapted to the AOP setting.We have implemented all of the techniques in this paper in abc, our AspectBench Compiler for AspectJ, and we demonstrate significant speedups with empirical results. Some of our techniques have already been integrated into the production AspectJ compiler, ajc 1.2.1.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
abc. The AspectBench Compiler. Home page with downloads, FAQ, documentation, support mailing lists, and bug database. http://aspectbench.org.
 
2
André Årnes. PKI certificate revocation. Available at http://www.pvv.ntnu.no/~andrearn/certrev/.
 
3
R. Dale Asberry. Aspect Oriented Programming (AOP): Using AspectJ to implement and enforce coding standards. http://www.daleasberry.com/newsletters/200210/20021002.shtml, 2002.
 
4
AspectJ Eclipse Home. The AspectJ home page. http://eclipse.org/aspectj/,2003.
5
6
7
 
8
Jonas Boner. AspectWerkz - dynamic AOP for Java. Available from URL: http://codehaus.org/~jboner/papers/aosd2004_aspectwerkz.pdf, 2004.
 
9
10
11
 
12
JBoss. JBoss Aspect Oriented Programming. Home page with down-loads, documentation, wiki. http://www.jboss.org/index. html?module=html&op=userdisplay&id=developer's/projects/jboss/aop.
 
13
Ondřej Lhoták. Spark: A flexible points-to analysis framework for Java. Master's thesis, McGill University, December 2002.
 
14
Ondřej Lhoták and Laurie Hendren. Scaling Java points-to analysis using Spark. In G. Hedin, editor, CC 2003, volume 2622 of LNCS, pages 153--169. Springer, April 2003.
15
16
 
17
 
18
Hidehiko Masuhara, Gregor Kiczales, and Chris Dutchyn. A compilation and optimization model for aspect-oriented programs. In CC 2003, volume 2622 of Springer Lecture Notes in Computer Science, pages 46--60, 2003.
19
20
21
22
23
 
24
 
25
 
26
Jianjun Zhao and Martin Rinard. System dependence graph construction for aspect-oriented programs. Technical Report MIT-LCS-TR-891, Laboratory for Computer Science, MIT, 2003.

CITED BY  24

Collaborative Colleagues:
Pavel Avgustinov: colleagues
Aske Simon Christensen: colleagues
Laurie Hendren: colleagues
Sascha Kuzins: colleagues
Jennifer Lhoták: colleagues
Ondřej Lhoták: colleagues
Oege de Moor: colleagues
Damien Sereni: colleagues
Ganesh Sittampalam: colleagues
Julian Tibble: colleagues