ACM Home Page
Please provide us with feedback. Feedback
A join point for loops in AspectJ
Full text PdfPdf (416 KB)
Source Aspect-oriented software development archive
Proceedings of the 5th international conference on Aspect-oriented software development table of contents
Bonn, Germany
SESSION: Language design and implementation table of contents
Pages: 63 - 74  
Year of Publication: 2006
ISBN:1-59593-300-X
Authors
Bruno Harbulot  The University of Manchester, Manchester, UK
John R. Gurd  The University of Manchester, Manchester, UK
Sponsor
AOSD-Europe : European Network of Excellent on Aspect-oriented Software Development
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 19,   Downloads (12 Months): 65,   Citation Count: 16
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/1119655.1119666
What is a DOI?

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
3
4
 
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
 
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

Collaborative Colleagues:
Bruno Harbulot: colleagues
John R. Gurd: colleagues