Pluggable AOP: Designing Aspect Mechanisms for Third-party Composition
Sergei Kojarski, Northeastern University
David H. Lorenz, University of Virginia
Studies of Aspect-Oriented Programming (AOP) usually focus on a language in which a specific aspect extension is integrated with a base language. Languages specified in this manner have a fixed, non-extensible AOP functionality. This paper argues the need for AOP to support the integration and use of multiple domain-specific aspect extensions together. We study the more general case of integrating a base language with a set of third-party aspect extensions for that language. We present a general mixin-based semantic framework for implementing dynamic aspect extensions in such a way that multiple, independently developed aspect mechanisms can be subject to third-party composition and work collaboratively. Principles governing the design of a collaborative aspect mechanism are aspectual effect exposure and implementation hiding.
In International Conference on Object-Oriented Programming, Systems and Applications, San Diego, CA, USA, October 16-20, 2005, pages 247-263. OOPSLA 2005, ACM Presss.
paper.html (html)
oopsla05.ps.gz (464k)
plugaop.pdf (233k)
http://doi.acm.org/10.1145/1094811.1094831
@InProceedings{Kojarski:2005:PAD, Title = "Pluggable {AOP}: {Designing} Aspect Mechanisms for Third-party Composition", Author = {Sergei Kojarski and David~H. Lorenz}, Crossref = {OOPSLA:2005}, Year = 2005, Pages = "247--263", URL = "http://www.cs.virginia.edu/~lorenz/papers/oopsla05/", } --------- OOPSLA crossref begin --------- @String{SIGPLAN = "ACM SIGPLAN Notices"} @String{TH = "\textsuperscript{\textit{th}} "} @String{PROC = "Proceedings of "} @String{ANNUAL = "Annual Conference on "} @String{COMPAN = "Companion of "} @String{OOPSLA = "Object-Oriented Programming Systems, Languages, and Applications"} @String{PROC:OOPSLA2005 = PROC#" the 20"#TH#"ANNUAL#OOPSLA} @String{OOPSLA2005 = "OOPSLA'05"} @String{COMPAN:OOPSLA2005 = OOPSLA2005#": "#COMPAN#" the 20"#TH#ANNUAL#OOPSLA} @Proceedings{OOPSLA:2005, Address = {San Diego, CA, USA}, Booktitle = PROC:OOPSLA2005, Key = OOPSLA2005, Organization = OOPSLA2005, Publisher = SIGPLAN#{ 39(10) }#Oct#{ 2005}, Publisher = {ACM Press}, Title = PROC:OOPSLA2005, Year = 2005, Month = Oct#{ 16--20}, Editor = {Ralph Johnson and Richard P. Gabriel}, ISBN = {1-59593-031-0}, } ---------- OOPSLA crossref end ----------