Aspect-oriented compilers. Eric van Wyk, Oege de Moor and Simon Peyton Jones. GCSE'99 - Generative and Component-Based Software Engineering.
Lazy evaluation allows compiler writers to ignore a separatation into passes, and to focus on the logical structure of their compiler instead. This is also a feature of attribute grammars, which can be viewed as a particular style of lazy functional program...
In this paper we propose a technique for making compiler aspects first class objects, that can be stored, manipulated, and combined.
The paper presents a nice tutorial on using lazy functional programming to build compilers. Only then does it tackle the issue of aspects.
Even if you are not interested in the AOP part, I recommend sections 1-4.
Section 6.4 explains how this work is related to the Intentional Programming efforts at Microsoft.
Posted to functional by Ehud Lamm on 4/1/02; 4:43:30 AM