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)