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)