Adding Superimposition To a Language Semantics

Author
Ralf Lämmel

Given the denotational semantics of a programming language, we describe a general method to extend the language in a way that it supports a form of \emph{superimposition}~---~just in the sense of aspect-oriented programming. In the extended language, the programmer can superimpose additional or alternative functionality (aka advice) onto points along the execution of a program. Adding superimposition to a language semantics comes down to three steps: (i) the semantic functions are elaborated to carry advice; (ii) the semantic equations are turned into `reflective' style so that they can be altered at will; (iii) a construct for binding advice is integrated. We illustrate the approach by representing semantics definitions as interpreters in Haskell.

Bibtex entry
@inproceedings{Laemmel-FOAL03,
 author = "Ralf L{\"a}mmel",
 title = "{Adding Superimposition To a Language Semantics~---~Extended Abstract}",
 booktitle = "FOAL'03 Proceedings: Foundations of Aspect-Oriented
              Languages Workshop at AOSD 2002; Technical Report CS Dept., Iowa State Univ.",
 editor = "Gary T. Leavens and Curtis Clifton",
 year = 2003,
 month = mar,
 note = "6 pages"
}

Download paper