ACM Home Page
Please provide us with feedback. Feedback
Semantics of static pointcuts in aspectJ
Full text PdfPdf (678 KB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
Nice, France
SESSION: Session 1 table of contents
Pages: 11 - 23  
Year of Publication: 2007
ISBN:1-59593-575-4
Also published in ...
Authors
Pavel Avgustinov  Oxford University, Oxford, UK
Elnar Hajiyev  Oxford University, Oxford, UK
Neil Ongkingco  Oxford University, Oxford, UK
Oege de Moor  Oxford University, Oxford, UK
Damien Sereni  Oxford University, Oxford, UK
Julian Tibble  Oxford University, Oxford, UK
Mathieu Verbaere  Oxford University, Oxford, UK
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 18,   Downloads (12 Months): 97,   Citation Count: 8
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/1190216.1190221
What is a DOI?

ABSTRACT

In aspect-oriented programming, one can intercept events by writing patterns called pointcuts. The pointcut language of the most popular aspect-oriented programming language, AspectJ, allows the expression of highly complex properties of the static program structure.We present the first rigorous semantics of the AspectJ pointcut language, by translating static patterns into safe ( i.e. range-restricted and stratified) Datalog queries. Safe Datalog is a logic language like Prolog, but it does not have data structures; consequently it has a straightforward least fixpoint semantics and all queries terminate.The translation from pointcuts to safe Datalog consists of a set of simple conditional rewrite rules, implemented using the Stratego system. The resulting queries are themselves executable with the CodeQuest system. We present experiments indicating that direct execution of our semantics is not prohibitively expensive.


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
Jonathan Aldrich. Open Modules: modular reasoning about advice. In Andrew P. Black, editor, Proceedings of ECOOP 2005, volume 3586 of Lecture Notes in Computer Science, pages 144--168. Springer, 2005.
 
3
 
4
AspectJ Eclipse home page. http://eclipse.org/aspectj/, 2003.
5
 
6
Pavel Avgustinov, Elnar Hajiyev, Neil Ongkingco, Oege de Moor, Damien Sereni, Julian Tibble, and Mathieu Verbaere. Datalog Semantics of Static Pointcuts in AspectJ 1.2.1. Technical Report abc-2006-2, AspectBench Compiler Project, 2006. http://aspectbench.org/techreports#abc-2006-2.
 
7
Ohad Barzilay, Yishai A. Feldman, Shmuel Tyszberowicz, and Amiram Yehudai. Call and execution semantics in AspectJ. In Curtis Clifton, Ralf Lämmel, and Gary T. Leavens, editors, FOAL, pages 19--24, 2004. Technical report TR #04-04, Department of Computer Science, Iowa State University.
 
8
Ron Bodkin. Pointcuts need a long form. http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg05971.html, 2006.
9
 
10
Glenn Bruns, Radha Jagadeesan, Alan Jeffrey, and James Riely. μABC: a minimal aspect calculus. In Philippa Gardner and Nobuko Yoshida, editors, Proceedings of CONCUR, volume 3170 of Lecture Notes in Computer Science, pages 209--224. Springer, 2004.
 
11
Bill Burke. has and hasfield pointcut expressions. http://aosd.net/pipermail/discuss_aosd.net/2004-May/000958.html, 2004.
 
12
13
14
15
 
16
 
17
 
18
Erich Gamma. JHotDraw. Available from http://sourceforge.net/projects/jhotdraw, 2004.
 
19
20
 
21
Elnar Hajiyev, Mathieu Verbaere, and Oege de Moor. CodeQuest: scalable source code queries with Datalog. In Dave Thomas, editor, Proceedings of ECOOP, volume 4067 of Lecture Notes in Computer Science, pages 2--27. Springer, 2006.
22
 
23
Jim Hugunin. Support for modifiers in typepatterns. http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg01578.html, 2003.
 
24
Peter Hui and James Riely. Temporal aspects as security automata. In Curtis Clifton, Ralf Lämmel, and Gary T. Leavens, editors, FOAL workshop at AOSD, Technical Report #06-01, pages 19--28. Iowa State University, 2006.
 
25
Wes Isberg. Type patterns shouldn't match arbitrary suffixes. Bug report: https://bugs.eclipse.org/bugs/show_bug.cgi?id=141133, 2006.
 
26
Radha Jagadeesan, Alan Jeffrey, and James Riely. A calculus of untyped aspect-oriented programs. In Luca Cardelli, editor, Proceedings of ECOOP, volume 2743 of Lecture Notes in Computer Science, pages 54--73. Springer, 2003.
 
27
Radha Jagadeesan, Alan Jeffrey, and James Riely. Typed parametric polymorphism for aspects. Science of Computer Programming, To appear, 2006.
 
28
 
29
Günter Kniesel, Tobias Rho, and Stefan Hanenberg. Evolvable pattern implementations need generic aspects. In ECOOP Workshop on Reflection, AOP and Meta-Data for Software Evolution, pages 116--126. 2004.
 
30
Ramnivas Laddad. AspectJ in Action. Manning, 2003.
31
32
 
33
Hidehiko Masuhara and Kazunori Kawauchi. Dataflow pointcut in aspect-oriented programming. In Atsushi Ohori, editor, Proceedings of APLAS, volume 2895 of Lecture Notes in Computer Science, pages 105--121. Springer, 2003.
 
34
Hidehiko Masuhara, Gregor Kiczales, and Chris Dutchyn. A compilation and optimization model for aspect-oriented programs. In Görel Hedin, editor, Compiler Construction, volume 2622 of Lecture Notes in Computer Science, pages 46--60. Springer, 2003.
35
36
 
37
Thomas W. Reps. Demand interprocedural program analysis using logic databases. In Raghu Ramakrishnan, editor, Applications of Logic Databases, volume 296 of International Series in Engineering and Computer Science, pages 163--196. Kluwer, 1995.
38
39
40
 
41
 
42
w3c. Jigsaw. http://www.w3.org/Jigsaw/, 2006.
43
 
44
Dean Wampler. Humane pointcut languages. http://blog.aspectprogramming.com/articles/2006/04/21/, 2006.
45
 
46
Meng Wang, Kung Chen, and Siau-Cheng Khoo. On the pursuit of static and coherent weaving. In Curtis Clifton, Ralf Lämmel, and Gary T. Leavens, editors, FOAL, number TR #$06-01 in Technical Report, pages 43--52, 2006.
47
 
48
John Whaley, Dzintars Avots, Michael Carbin, and Monica S. Lam. Using datalog and binary decision diagrams for program analysis. In Kwangkeun Yi, editor, Proceedings of APLAS, volume 3780 of Lecture Notes in Computer Science, pages 97--118. Springer, 2005.
 
49

CITED BY  8

Collaborative Colleagues:
Pavel Avgustinov: colleagues
Elnar Hajiyev: colleagues
Neil Ongkingco: colleagues
Oege de Moor: colleagues
Damien Sereni: colleagues
Julian Tibble: colleagues
Mathieu Verbaere: colleagues