Program transformation is used in a wide range of applications including compiler\ud construction, optimization, program synthesis, refactoring, software renovation, and\ud reverse engineering. Complex program transformations are achieved through a number\ud of consecutive modifications of a program. Transformation rules define basic\ud modifications. A transformation strategy is an algorithm for choosing a path in\ud the rewrite relation induced by a set of rules. This paper surveys the support for\ud the definition of strategies in program transformation systems. After a discussion\ud of kinds of program transformation and choices in program representation, the basic\ud elements of a strategy system are discussed and the choices in the design of a\ud strategy language are considered. Several styles of strategy systems as provided in\ud existing languages are then analyzed
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.