ABSTRACT
Domain specific aspect-oriented
language extensions offer unique capabilities to deal with a variety of cross
cutting concerns. Ideally, one should be able to use several of these
extensions together in a single program. Unfortunately, each extension
generally implements its own specialized weaver and the different weavers are
incompatible. Even if the weavers were compatible, combining them is a
difficult problem to solve in general, because each extension definesits own language with new semantics. In this paper
we present a practical composition framework, named A<scp>wesome</scp>, for
constructing a multi-extension weaver by plugging together independently
developed aspect mechanisms. The framework has a component-based and
aspect-oriented architecture that facilitates the development and integration
of aspect weavers. To be scalable, the framework provides a default
resolution of feature interactions in the composition. To be general, the
framework provides means for customizing the composition behavior.
Furthermore, to be practically useful, there is no framework-associated
overhead on the runtime performance of compiled aspect programs. To
illustrate the A<scp>wesome</scp> framework concretely, we demonstrate the
construction of a weaver for a multi-extension AOP language that combines
Cool and AspectJ. However, the composition method
is not exclusive to Cool and AspectJ-it can be
applied to combine any comparable reactive aspect mechanisms.
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.
|
|
J. Aldrich. Open modules: Modular reasoning about advice. In
Proceedings of the 19th European Conference on Object-Oriented Programming
(ECOOP'05), number 3586 in Lecture Notes in Computer Science, pages
144--168, Glasgow, UK, July 25--29 2005. Springer Verlag.
|
|
|
Proceedings of the 3rd International Conference on
Aspect-Oriented Software Development (AOSD'04), Mancaster, UK, Mar. 17--21 2004.
ACM Press.
|
|
|
I. Aracic, V. Gasiunas,
M. Mezini, and K. Ostermann.
An overview of CaesarJ. In Rashid and Aksit [35], pages 135--173.
|
|
|
P. Avgustinov, A. S. Christensen, L.
Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de
Moor, D. Sereni, G. Sittampalam,
and J. Tibble. abc: an
extensible AspectJ compiler. In Proceedings of
the 4th International Conference on Aspect-Oriented Software Development
(AOSD'05), pages 87--98, Chicago, Illinois, USA, Mar. 14--18 2005.
ACM Press.
|
|
|
P. Avgustinov, A. S. Christensen, L.
J. Hendren, S. Kuzins,
J. Lhoták, O. Lhoták,
O. de Moor, D. Sereni, G. Sittampalam,
and J. Tibble. abc: an
extensible AspectJ compiler. In Rashid and Aksit [35], pages 293--334.
|
|
|
J. Boner. What are the key issues for commercial AOP use: how
does AspectWerkz address them? In AOSD'04 [2],
pages 5--6.
|
|
|
C. Clifton and G. T. Leavens. Obliviousness, modular
reasoning, and the behavioral subtyping analogy.
In Proceedings of the AOSD'03 Workshop on Software-engineering Properties
of Languages for Aspect Technologies (SPLAT'03), Boston, Massachusetts,
Mar. 18 2003. AOSD'03, ACM Press.
|
|
|
K. De Volder, J. Brichau,
K. Mens, and T. D'Hondt.
Logic meta-programming, a framework for domain-specific aspect programming
languages. Unpublished, 2001.
|
|
|
M. D'Hondt and T. D'Hondt. Is domain knowledge an aspect? In Proceedings of
the ECOOP'99 International Workshop on Aspect-Oriented Programming, Lisbon,
Portugal, June 1999.
|
|
|
Proceedings of the 17th European Conference on Object-Oriented
Programming (ECOOP'03), number 2743 in Lecture Notes in Computer Science,
Darmstadt, Germany, July 21--25 2003. Springer Verlag.
|
|
|
Proceedings of the AOSD'05 Workshop on Foundations of
Aspect-Oriented Languages (FAOL'05), Chicago, IL, USA, Mar. 14 2005. ACM
Press.
|
|
|
R. E. Filman, T. Elrad,
S. Clarke, and M. Akşit, editors. Aspect-Oriented
Software Development. Addison-Wesley, Boston, 2005.
|
|
|
R. E. Filman and D. P. Friedman.
Aspect-Oriented programming is quantification and obliviousness. In P. Tarr, L. Bergmans, M. Griss, and H. Ossher,
editors, Proceedings of the OOPSLA 2000 Workshop on Advanced Separation of
Concerns. Department of Computer Science, University of Twente,
The Netherlands, 2000.
|
|
|
R. E. Filman and D. P. Friedman.
Aspect-Oriented programming is quantification and obliviousness. In Filman et al. [12], pages 21--35.
|
|
|
E. Gamma, R. Helm, R. Johnson, and J. Vlissides.
Design Patterns: Elements of Reusable Object-Oriented Software.
Professional Computing. Addison-Wesley, 1995.
|
|
|
W. Havinga, I. Nagy, L. Bergmans, and M. Akşit.
Detecting and resolving ambiguities caused by inter-dependent
introductions. In Proceedings of the 5th International Conference on
Aspect-Oriented Software Development (AOSD'06), pages 214--225, Bonn,
Germany, Mar. 20--24 2006. ACM Press.
|
|
|
E. Hilsdale and J. Hugunin. Advice weaving in AspectJ.
In AOSD'04 [2], pages 26--35.
|
|
|
Proceedings of the 21st International Conference on Software
Engineering (ICSE'99), Los Angeles, California, May 1999. IEEE Computer
Society.
|
|
|
R. Jagadeesan, A. Jeffrey, and J. Riely. An untyped calculus
for aspect oriented programs. In ECOOP'03 [10], pages 54--73.
|
|
|
G. Kiczales, E. Hilsdale,
J. Hugunin, M. Kersten,
J. Palm, and W. G. Griswold. An overview of AspectJ.
In Proceedings of the 15th European Conference on Object-Oriented
Programming (ECOOP'01), number 2072 in Lecture Notes in Computer Science,
pages 327--353, Budapest, Hungary, June 18--22 2001. Springer Verlag.
|
|
|
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented programming.
In Proceedings of the 11th European Conference on Object-Oriented
Programming (ECOOP'97), number 1241 in Lecture Notes in Computer Science,
pages 220--242, Jyväskylä, Finland, June 9--13
1997. Springer Verlag.
|
|
|
S. Kojarski and D. H. Lorenz.
Pluggable AOP: Designing aspect mechanisms for third-party composition. In
Proceedings of the 20th Annual Conference on Object-Oriented Programming
Systems, Languages, and Applications (OOPSLA'05), pages 247--263, San
Diego, CA, USA, Oct. 16-20 2005. ACM Press.
|
|
|
S. Kojarski and D. H. Lorenz.
Modeling aspect mechanisms: A top-down approach. In Proceedings of the 28th
International Conference on Software Engineering (ICSE'06), pages 212--221,
Shanghai, China, May 20--28 2006. ACM Press.
|
|
|
S. Kojarski and D. H. Lorenz.
Identifying feature interactions in Aspect-Oriented frameworks. In
Proceedings of the 29th International Conference on Software Engineering
(ICSE'07), Minneapolis, MN, May 20--26 2007. IEEE Computer Society.
|
|
|
K. Lieberherr and D. H. Lorenz.
Coupling Aspect-Oriented and Adaptive Programming. In Filman
et al. [12], pages 145--164.
|
|
|
K. J. Lieberherr. Adaptive
Object-Oriented Software: The Demeter Method with Propagation Patterns.
PWS-Kent Publishing, 1996.
|
|
|
C. V. Lopes. D: A Language Framework for Distributed
Programming. PhD thesis, Northeastern University, 1997
|
|
|
D. H. Lorenz and S. Kojarski.
Understanding aspect interactions, co-advising and foreign advising. In
Proceedings of ECOOP'07 Second International Workshop on Aspects,
Dependencies and Interactions, pages 23--28, Berlin, Germany, July 30 2007.
|
|
|
H. Masuhara and G. Kiczales. Modeling crosscutting in Aspect-Oriented
mechanisms. In ECOOP'03 [10], pages 2--28.
|
|
|
H. Masuhara, G. Kiczales,
and C. Dutchyn. Compilation semantics of
Aspect-Oriented programs. In FAOL'05 [11], pages 17--26.
|
|
|
H. Masuhara, G. Kiczales,
and C. Dutchyn. A compilation and optimization
model for Aspect-Oriented programs. In Compiler Construction, number 2622
in Lecture Notes in Computer Science, pages 46--60, 2003.
|
|
|
G. C. Murphy, R. J. Walker, and E. L. A. Baniassad.
Evaluating emerging software development technologies: Lessons learned from
assessing Aspect-Oriented programming. IEEE Transactions on Software
Engineering, 25(4):438--455, 1999.
|
|
|
G. C. Murphy, R. J. Walker, E. L. A. Baniassad,
M. P. Robillard, A. Lai, and M. A. Kersten. Does aspect-oriented programming work? Commun. ACM, 44(10):75--77, Oct. 2001.
|
|
|
H. Ossher and P. Tarr.
Hyper/J: multi-dimensional separation of concerns for Java. In Proceedings
of the 22nd International Conference on Software Engineering (ICSE'00),
pages 734--737, Limerick, Ireland, June 2000. ICSE'00, IEEE Computer
Society.
|
|
|
A. Rashid and M. Aksit, editors.
Transactions on Aspect-Oriented Software Development I, number 3880 in
Lecture Notes in Computer Science. Springer Verlag,
2006.
|
|
|
M. Shonle, K. Lieberherr,
and A. Shah. XAspects: An extensible system for
domain specific aspect languages. In Companion to the 18th Annual
Conference on Object-Oriented Programming Systems, Languages, and
Applications, pages 28--37, Anaheim, California, 2003. ACM Press.
|
|
|
É. Tanter and J. Noyé.
A versatile kernel for multi-language AOP. In Proceedings of the 4th
International Conference on Generative Programming and Component
Engineering (GPCE'05), number 3676 in Lecture Notes in Computer Science,
pages 173--188, Tallin, Estonia, Sept. 29--Oct. 1
2005. Springer Verlag.
|
|
|
P. L. Tarr, H. L. Ossher, W. H. Harrison, and S. M. Sutton, Jr. N degrees
of separation: Multi-dimentional separation of
concerns. In ICSE'99 [18], pages 107--119.
|
|
|
D. Walker, S. Zdancewic, and J. Ligatti. A theory of aspects. In Proceedings of the 7th
ACM SIGPLAN International Conference on Functional Programming, pages
127--139, Uppsala, Sweden, Aug. 2003. ACM Press.
|
|
|
R. J. Walker, E. L. A. Baniassad,
and G. Murphy. Assessing Aspect-Oriented programming and design. In S. Demeyer and J. Bosch, editors, Object-Oriented
Technology, ECOOP'98 Workshop Reader, number 1543 in Lecture Notes in
Computer Science, pages 433--434, Brussels, Belgium, July 1998. Proceedings
of the ECOOP'98 Workshops, Demos, and Posters, Springer Verlag.
|
|
|
R. J. Walker, E. L. A. Baniassad,
and G. C. Murphy. An initial assessment of Aspect-Oriented programming. In
ICSE'99 [18], pages 120--130.
|
|
|
M. Wand, G. Kiczales, and C. Dutchyn. A semantics for advice and dynamic join points
in aspect-oriented programming. ACM Trans. Prog.
Lang. Syst., 26(5):890--910, Sept. 2004
|
|
|
|