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