Rewriting Strategy

Stratego -- Strategies for Program Transformation
A rewriting strategy is an algorithm for transforming a term with respect to a set of rewrite rules. Some rewriting strategies are NormalizingStrategies?, i.e., rewrite a term into NormalForm. A term is in normal form if no rule applies anywhere within the term. Examples of strategies are innermost and outermost.

The rewriting strategy is usually built-in to the rewriting engine. Some languages make the rewriting strategy a user-definable entity with the purpose of providing more control over the selection of rules and the order of normalization.

These languages include Tools.ELAN and StrategoLanguage.