Implementing aspect-oriented programming constructs as modular language extensions

Research output: Contribution to journalArticlepeer-review

2 Scopus citations


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.

Original languageEnglish (US)
Pages (from-to)38-61
Number of pages24
JournalScience of Computer Programming
Issue number1 SPEC. ISS.
StatePublished - Aug 1 2007


  • Aspect-oriented programming
  • Attribute grammars
  • Extensible compilers
  • Extensible languages
  • Forwarding


Dive into the research topics of 'Implementing aspect-oriented programming constructs as modular language extensions'. Together they form a unique fingerprint.

Cite this