Aspect-specification based on structural type information

Aspects developed in aspect-oriented systems often need to hook onto multiple objects that share common structural characteristics - such as attributes and operations. In strongly-typed aspect-oriented systems like AspectJ these objects need to be of common type so that pointcuts may designate them and pieces of advice may interact with them. Such type-systems are typically based on nominal types, therefore, aspects cannot interact with objects according to their structural information in a common way. This paper argues that specifying aspects based on a nominal type system is not sufficient and shows that aspect-specifications based on structural characteristics overcome this problem. A corresponding extension of the nominal type systems is proposed and illustrated by means of structural types and compound types.

[1]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[2]  Stefan Hanenberg,et al.  Parametric introductions , 2003, AOSD '03.

[3]  Gerald Baumgartner,et al.  Safe Structural Conformance for Java , 2000, Comput. J..

[4]  Guy L. Steele,et al.  Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)) , 2005 .

[5]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[6]  Vincent F. Russo,et al.  Signature-Based Polymorphism for C++ , 1993, C++ Conference.

[7]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

[8]  Kris Gybels,et al.  Arranging language features for more robust pattern-based crosscuts , 2003, AOSD '03.

[9]  Mira Mezini,et al.  Separation of Concerns with Procedures, Annotations, Advice and Pointcuts , 2005, ECOOP.

[10]  Robert Hirschfeld,et al.  AspectS - Aspect-Oriented Programming with Squeak , 2002, NetObjectDays.

[11]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[12]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[13]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[14]  Mira Mezini,et al.  Programming with Aspectual Components , 1999 .

[15]  Jim Hugunin,et al.  Advice weaving in AspectJ , 2004, AOSD '04.

[16]  Wolfgang Weck,et al.  Compound types for Java , 1998, OOPSLA '98.

[17]  Guy L. Steele,et al.  The Java Language Specification , 1996 .