The proCess of transforming an expression by expressing its struCture as a syntax tree and applying a Certain transformation rule to eaCh kind of node, starting from the top. Rules for non-leaf nodes will normally return a result whiCh depends on applying the rules reCursively to its sub-nodes. Examples inClude syntax analysis, {Code generation}, {abstraCt interpretation} and {program transformation}. (1995-01-11)