A
transformation rule is a description (in some formal language) of the transformation of (a part of) a program.
Many formal languages for the description of transformation rules have been defined. Probably the most natural description is based on
RewriteRules that declare the transformation of one abstract syntax tree pattern into another.
RewriteRules hence describe a local transformation in a syntax tree.
However, pure unconditional
RewriteRules are limited in their expressivity for transformations with a more global nature.
Other formalisms ??
Implementation of transformation rules ??