An object-oriented framework for aspect-oriented languages

  • Authors:
  • Marko van Dooren;Eric Steegmans;Wouter Joosen

  • Affiliations:
  • KU Leuven, Leuven, Belgium;KU Leuven, Leuven, Belgium;KU Leuven, Leuven, Belgium

  • Venue:
  • Proceedings of the 11th annual international conference on Aspect-oriented Software Development
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Aspect-orientation is a mechanism for modularizing cross-cutting concerns that has been added to many existing software engineering languages. The implementations of aspect-oriented language extensions, however, are typically tied to a specific base language. There is little or no code reuse between aspect-oriented extensions for different base languages, which makes these extensions difficult and expensive to build. In addition, existing software engineering tools do not work with the resulting aspect-oriented languages unless new plugins are developed. We present Carpenter, an object-oriented framework for developing aspect-oriented language extensions. An aspect language is developed by reusing classes for generic language constructs from Carpenter, and writing subclasses of the abstractions in Carpenter to define new language constructs. An aspect weaver is created by implementing framework interfaces to weave language-specific constructs. The coordination of the weaving process is done by the Carpenter framework. Aspect languages developed with Carpenter get full IDE support with only a few lines of code. We have used our framework to create aspect weavers for Java, JLo, and AspectU.