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)