ACM Home Page
Please provide us with feedback. Feedback
Classpects: unifying aspect- and object-oriented language design
Full text PdfPdf (194 KB)
Source International Conference on Software Engineering archive
Proceedings of the 27th international conference on Software engineering table of contents
St. Louis, MO, USA
SESSION: Aspect-oriented software development table of contents
Pages: 59 - 68  
Year of Publication: 2005
ISBN:1-59593-963-2
Authors
Hridesh Rajan  University of Virginia, Charlottesville, Virginia
Kevin J. Sullivan  University of Virginia, Charlottesville, Virginia
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 13,   Downloads (12 Months): 49,   Citation Count: 17
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1062455.1062483
What is a DOI?

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

Collaborative Colleagues:
Hridesh Rajan: colleagues
Kevin J. Sullivan: colleagues