|
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
|
Pavel Avgustinov , Aske Simon Christensen , Laurie Hendren , Sascha Kuzins , Jennifer Lhoták , Ondřej Lhoták , Oege de Moor , Damien Sereni , Ganesh Sittampalam , Julian Tibble, abc: an extensible AspectJ compiler, Proceedings of the 4th international conference on Aspect-oriented software development, p.87-98, March 14-18, 2005, Chicago, Illinois
[doi> 10.1145/1052898.1052906]
|
| |
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
|
Martin Bravenboer , Éric Tanter , Eelco Visser, Declarative, formal, and extensible syntax definition for aspectJ, Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
|
| |
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
|
Steven Dawson , C. R. Ramakrishnan , David S. Warren, Practical program analysis using general purpose logic programming systems—a case study, Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, p.117-126, May 21-24, 1996, Philadelphia, Pennsylvania, United States
|
| |
16
|
|
| |
17
|
|
| |
18
|
Erich Gamma. JHotDraw. Available from http://sourceforge.net/projects/jhotdraw, 2004.
|
| |
19
|
William G. Griswold , Kevin Sullivan , Yuanyuan Song , Macneil Shonle , Nishit Tewari , Yuanfang Cai , Hridesh Rajan, Modular Software Design with Crosscutting Interfaces, IEEE Software, v.23 n.1, p.51-60, January 2006
[doi> 10.1109/MS.2006.24]
|
 |
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
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
| |
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
|
Monica S. Lam , John Whaley , V. Benjamin Livshits , Michael C. Martin , Dzintars Avots , Michael Carbin , Christopher Unkel, Context-sensitive program analysis as database queries, Proceedings of the twenty-fourth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems, June 13-15, 2005, Baltimore, Maryland
[doi> 10.1145/1065167.1065169]
|
 |
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
|
Edward McCormick , Kris De Volder, JQuery: finding your way through tangled code, Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 24-28, 2004, Vancouver, BC, CANADA
[doi> 10.1145/1028664.1028670]
|
 |
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
|
Konstantinos Sagonas , Terrance Swift , David S. Warren, XSB as an efficient deductive database engine, Proceedings of the 1994 ACM SIGMOD international conference on Management of data, p.442-453, May 24-27, 1994, Minneapolis, Minnesota, United States
|
 |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dima Alhadidi , Amine Boukhtouta , Nadia Belblidia , Mourad Debbabi , Prabir Bhattacharya, The dataflow pointcut: a formal and practical framework, Proceedings of the 8th ACM international conference on Aspect-oriented software development, March 02-06, 2009, Charlottesville, Virginia, USA
|
|
|
Dima Alhadidi , Amine Boukhtouta , Nadia Belblidia , Mourad Debbabi , Prabir Bhattacharya, The dataflow pointcut: a formal and practical framework, Proceedings of the 8th ACM international conference on Aspect-oriented software development, March 02-06, 2009, Charlottesville, Virginia, USA
|
|
|
|
|