|
ABSTRACT
The contribution of this work is the design, implementation, and early evaluation of a programming language that unifies classes and aspects. We call our new module construct the classpect. We make three basic claims. First, we can realize a unified design without significantly compromising the expressiveness of current aspect languages. Second, such a design improves the conceptual integrity of the programming model. Third, it significantly improves the compositionality of aspect modules, expanding the program design space from the two-layered model of AspectJ-like languages to include hierarchical structures. To support these claims, we present the design and implementation of Eos-U, an AspectJ-like language based on C# that supports classpects as the basic unit of modularity. We show that Eos-U supports layered designs in which classpects separate integration concerns flexibly at multiple levels of composition. The underpinnings of our design include support for aspect instantiation under program control, instance-level advising, advising as a general alternative to object-oriented method invocation and overriding, and the provision of a separate join-point-method binding construct.
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 : http://eclipse.org/aspectj
|
| |
2
|
AspectC++, http://www.aspectc.org.
|
| |
3
|
AspectR: "Simple Aspect Oriented Programming in Ruby," http://aspectr.sourceforge.net/.
|
| |
4
|
AspectWerkz: http://aspectwerkz.codehaus.org/
|
| |
5
|
Aldrich, J., "Open Modules: A Proposal for Modular Reasoning in Aspect-Oriented Programming.", In the Proceedings of the Workshop on Foundations of Aspect Languages (FOAL'04), March 2004.
|
| |
6
|
|
 |
7
|
|
| |
8
|
Eos: http://www.cs.virginia.edu/~eos
|
| |
9
|
|
| |
10
|
Filman, R. E., and Friedman. D. P., "Aspect oriented programming is quantification and obliviousness", In OOPSLA 2000 Workshop on Advanced Separation of Concerns, Minneapolis, MN, Oct. 2000.
|
| |
11
|
Harrison W., Ossher H., and Tarr P., "Asymmetrically vs. Symmetrically Organized Paradigms for Software Composition", IBM Research Report RC22685 (W0212-147) December 30, 2002.
|
| |
12
|
Hirschfeld, R., "AspectS -- Aspects in Squeak", ECOOP'2002 Workshop on Generative Programming, Jun 2002.
|
| |
13
|
Kiczales, G., "Personal Communication with Kevin Sullivan", Jan 2005.
|
| |
14
|
Kiczales, G., "The fun has just begun", Key note address of 2 nd International Conference on Aspect-Oriented Software Development, Boston, MA, 2003.
|
| |
15
|
Kiczales, G.., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J. and Irwin, J., "Aspect-oriented programming," Proceedings of the European conference on object-oriented programming (ECOOP), Springer-Verlang, Lecture Notes on Computer Science 1241, June 1997.
|
| |
16
|
|
| |
17
|
Lamping, J., "The role of the base in aspect-oriented programming", First Workshop on Multi-dimensional separation of concerns in object-oriented systems (at OOPSLA '99).
|
| |
18
|
|
 |
19
|
|
| |
20
|
C#: http://msdn.microsoft.com/net/ecma/.
|
| |
21
|
.Net Framework: http://msdn.microsoft.com
|
 |
22
|
|
 |
23
|
|
| |
24
|
Rajan, H. and Sullivan, K., "Need for Instance Level Aspects with Rich Pointcut Language", Workshop on Software Engineering Properties of Languages for Aspect Technologies (SPLAT) held in conjunction with 2 nd international conference on Aspect-oriented software development, Boston, MA, USA, Mar 2003.
|
 |
25
|
Kouhei Sakurai , Hidehiko Masuhara , Naoyasu Ubayashi , Saeko Matsuura , Seiichi Komiya, Association aspects, Proceedings of the 3rd international conference on Aspect-oriented software development, p.16-25, March 22-24, 2004, Lancaster, UK
[doi> 10.1145/976270.976275]
|
| |
26
|
|
 |
27
|
|
 |
28
|
|
| |
29
|
|
| |
30
|
Tarr, P. and Ossher, H., "Multi Dimensional Separation of Concerns using Hyperspaces", IBM Research Report 21452, April, 1999.
|
| |
31
|
Tarr, P. and Ossher, H., "Hyper/J™ User and Installation Manual", IBM Corporation.
|
CITED BY 17
|
|
|
|
|
Kevin Sullivan , William G. Griswold , Yuanyuan Song , Yuanfang Cai , Macneil Shonle , Nishit Tewari , Hridesh Rajan, Information hiding interfaces for aspect-oriented design, ACM SIGSOFT Software Engineering Notes, v.30 n.5, September 2005
|
|
|
|
|
|
|
|
|
|
|
|
Thaís Batista , Christina Chavez , Alessandro Garcia , Awais Rashid , Cláudio Sant'Anna , Uirá Kulesza , Fernando Castor Filho, Reflections on architectural connection: seven issues on aspects and ADLs, Proceedings of the 2006 international workshop on Early aspects at ICSE, May 21-21, 2006, Shanghai, China
|
|
|
Pavel Avgustinov , Elnar Hajiyev , Neil Ongkingco , Oege de Moor , Damien Sereni , Julian Tibble , Mathieu Verbaere, Semantics of static pointcuts in aspectJ, ACM SIGPLAN Notices, v.42 n.1, January 2007
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Eddy Truyen , Wouter Joosen, Towards an aspect-oriented architecture for self-adaptive frameworks, Proceedings of the 2008 AOSD workshop on Aspects, components, and patterns for infrastructure software, p.1-8, March 31-April 08, 2008, Brussels, Belgium
|
|
|
|
|
|
|
|
|
|
|