Aspectual Collaborations and Modular Programming
Abstract. We present a rewriting approach for combining aspect-oriented programming and role-based collaborations to create reusable program- ming constructs called Aspectual Collaborations. These are separately compiled units of encapsulated behavior that can be adapted to fit a variety of uses. Our approach is to combine sets of compiled Java .class files accord- ing to an adaptation specification. A lightweight (based on field and method modifier keywords only) source-to-source transformation lets us use any Java compiler for type checking and compilation to bytecodes, and an equally lightweight bytecode-to-bytecode transformation removes the need for auxiliary interface files. The Java type system is leveraged to protect the programmer from inadvertent type errors without additional constraints on how collaborations may be programmed. Simple but powerful concepts allowus to provide separate compilation of aspects, composition, and flexible object code reuse with a natural and intuitive operational semantics.

Bibtex entry:

@TECHREPORT{aspectual-collabs,
AUTHOR       = "Johan Ovlinger",
TITLE        = "{Aspectual Collaborations and Modular Programming}",
INSTITUTION  = "College of Computer Science, Northeastern University",
YEAR         = 2000,
MONTH        = "November",
NUMBER       = "{NU-CCS-2000-04}",
ADDRESS      = "Boston, MA",
NOTE = " 27 pages".
}        

Paper in PDF

Predecessor paper: OOPSLA '98 paper on Adaptive-Plug-and-Play Components

Aspect-Oriented Programming (AOP)