In the paradigm of Compilation by Transformation many aspects of compilation are implemented as a series of simple
ProgramTransformations on the source code or intermediate representation of a program. Typical aspects that can be formulated as transformations are
ProgramDesugaring? and
ProgramOptimization.
The approach is taken to the extreme in
GHC.
See also