|
ABSTRACT
The current AspectJ join points represent locations in the code that are the interface of the Java objects. However, not all the "things that happen" happen at the interfaces. In particular, loops are a key place that could be advised for parallelisation. This article presents a loop join point model, which allows AspectJ to intervene directly in loops. More generally, this demonstrates the need for, and provides, a more complex join point in AspectJ.The approach used for recognising loops is based on a control-flow analysis at the bytecode level; this avoids ambiguities due to alternative forms of source-code that would effectively produce identical loops. This model is also enhanced with a mechanism for context exposure, which is pivotal for giving a meaning to the use of this join point, and with additional information through join point reflection. The context exposure is particularly useful for writing pointcuts that select specific loops only, and the problem of loop selection is also presented in the paper.Finally, LoopsAJ, an extension for the abc compiler that provides AspectJ with a loop join point, is presented. It is shown how to use this extension for writing aspects that parallelise loops.
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
|
AspectJ web site. http://www.eclipse.org/aspectj/.
|
| |
2
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
 |
3
|
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, Optimising aspectJ, Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, June 12-15, 2005, Chicago, IL, USA
|
 |
4
|
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]
|
| |
5
|
A. J. Bik and D. B. Gannon. javab - a prototype bytecode parallelization tool. Technical Report TR489, Computer Science Department, Indiana University, 1997.
|
| |
6
|
G. Bracha and J. Bloch. JSR 201: Extending the Java#8482; programming language with enumerations, autoboxing, enhanced for loops and static import, Sept. 2004. http://Jcp.org/en/jsr/detail?id=201.
|
| |
7
|
R. Douence and L. Teboul. A pointcut language for control-flow. In Proceedings of the 3rd International Conference on Generative Programming and Component Engineering (GPCE'04), pages 95--114, 2004.
|
| |
8
|
|
 |
9
|
|
| |
10
|
B. Harbulot and J. R. Gurd. A join point for loops in AspectJ. In Proceedings of the 4th workshop on Foundations of Aspect-Oriented Languages (FOAL 2005), pages 11--20, TR #05--05, Department of Computer Science, Iowa State University, Mar. 2005.
|
 |
11
|
|
| |
12
|
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
|
| |
13
|
S. Kuzins. Efficient implementation of around-advice for the AspectBench Compiler, Master's thesis, Oxford University, UK, September 2004.
|
| |
14
|
|
| |
15
|
H. Masuhara and K. Kawauchi. Dataflow pointcut in aspect-oriented programming. Lecture Notes in Computer Science 2895, Proceedings of The First Asian Symposium on Programming Languages and Systems (APLAS'03), pages 105--121, 2003.
|
| |
16
|
|
| |
17
|
R. Vallee-Rai and L. J. Hendren. Jimple: Simplifying Java bytecode for analyses and transformations. Technical report, Sable Group, McGill University, Montreal, Canada, July 1998.
|
CITED BY 18
|
|
|
|
|
Fernando Castor Filho , Nelio Cacho , Eduardo Figueiredo , Raquel Maranhão , Alessandro Garcia , Cecília Mary F. Rubira, Exceptions and aspects: the devil is in the details, Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, November 05-11, 2006, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Walter Binder , Alex Villazón , Martin Schoeberl , Philippe Moret, Cache-aware cross-profiling for java processors, Proceedings of the 2008 international conference on Compilers, architectures and synthesis for embedded systems, October 19-24, 2008, Atlanta, GA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Chenchen Xi , Bruno Harbulot , John R. Gurd, Aspect-oriented support for synchronization in parallel computing, Proceedings of the 1st workshop on Linking aspect technology and evolution, p.1-5, March 03-03, 2009, Charlottesville, Virginia, USA
|
|
|
Shumpei Akai , Shigeru Chiba , Muga Nishizawa, Region pointcut for AspectJ, Proceedings of the 8th workshop on Aspects, components, and patterns for infrastructure software, March 02-02, 2009, Charlottesville, Virginia, USA
|
|
|
|
|
|
|
|