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.