Implementing aspect-oriented programming constructs as modular language extensions

  • Authors:
  • Eric Van Wyk

  • Affiliations:
  • Department of Computer Science and Engineering, University of Minnesota, Minneapolis, MN, USA

  • Venue:
  • Science of Computer Programming
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Extensible programming languages and their compilers are experimental systems that use highly modular specifications of languages and language extensions in order to allow a variety of language features to be easily imported, by the programmer, into his or her programming environment. Our framework for extensible languages is based on higher-order attribute grammars extended with a mechanism called ''forwarding'' that mimics a simple rewriting process. Forwarding is designed such that no additional attribute definitions need to be written when combining a ''host'' language with language extensions (specified as attribute grammars), thus allowing for the modular composition of language features. This means that programmers can remain unaware of the underlying attribute grammars when building customized languages by importing language extensions. This paper shows how aspects and the aspect weaving process from aspect-oriented programming can be specified as a modular language extension and imported into an extensible host language. This paper also illustrates how an extensible compiler framework exposes its underlying semantic analyses and how this can provide a convenient arena in which researchers can explore new aspect-oriented language features.