kirancodes.me
To Proof Maintenance & Beyond!

Classpects: unifying aspect- and object-oriented language design

Hridesh Rajan, Kevin J. Sullivan

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.

BibTeX
@inproceedings{Rajan-Sullivan:ICSE05,
  author    = {Hridesh Rajan and
               Kevin J. Sullivan},
  title     = {Classpects: unifying aspect- and object-oriented language design},
  booktitle = {ICSE},
  pages     = {59--68},
  publisher = {{ACM}},
  year      = {2005},
}

Related papers