2005
DOI: 10.1145/1064978.1065026
|View full text |Cite
|
Sign up to set email alerts
|

Optimising aspectJ

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 previou… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
53
0

Year Published

2005
2005
2009
2009

Publication Types

Select...
5
1

Relationship

0
6

Authors

Journals

citations
Cited by 35 publications
(53 citation statements)
references
References 16 publications
0
53
0
Order By: Relevance
“…The results of the first experiment show that the ajc compiler introduces a considerable size overhead. Certainly, the reason is that this compiler does not support many optimizations that are possible in aspect-oriented languages [2]. On the other hand, the results using the abc are much more acceptable.…”
Section: Component Client Servermentioning
confidence: 98%
“…The results of the first experiment show that the ajc compiler introduces a considerable size overhead. Certainly, the reason is that this compiler does not support many optimizations that are possible in aspect-oriented languages [2]. On the other hand, the results using the abc are much more acceptable.…”
Section: Component Client Servermentioning
confidence: 98%
“…In particular, the AspectJ implementations ajc [17] and abc [7] use bytecode rewriting to implement "around" advice in many cases. They still seem to incur boxing and unboxing overhead when calling Proceed on target methods with primitive return type, although the exact circumstances are not so clear [7, §3.3].…”
Section: Related Work: Other Aspect Weaversmentioning
confidence: 99%
“…By contrast, AOP implementations for C and C++, such as AspectC++ [35], generally favour efficiency over flexibility of the aspects. Modern implementations of AspectJ avoid much of the runtime overhead too, though not all [7,17].…”
Section: Introductionmentioning
confidence: 99%
“…Dynamic residue (if, instanceof, and cflow residue left over by dynamic crosscuts) [4,21]. Can involve runtime reflection or calls into the AOP system.…”
Section: Dynamic Aspect Selectionmentioning
confidence: 99%
“…In the domain of optimizing compilers [1], the problem is caused by the removal, merging, duplication (in-lining), reordering, or interleaving of instructions. In the domain of AOP weaving, the code location problem is usually caused by the removal (e.g., hoisting [4]), insertion (e.g., code synthesis, dynamic residue, aspect method calls, aspect in-lining, closures), duplication (e.g., initialization in-lining), or reordering (e.g., due to aroundadvice) of instructions [21]. The problem causes the debugger to show the wrong source line or call stack, or show byte code (or machine code) instead of source code.…”
Section: The Code Location Problemmentioning
confidence: 99%