A Survey of Rewriting Strategies in Program Transformation Systems
Files
Publication date
2001-01-01
Authors
Visser, Eelco
Editors
Advisors
Supervisors
DOI
Document Type
Article
Metadata
Show full item recordCollections
License
Abstract
Program transformation is used in a wide range of applications including compiler
construction, optimization, program synthesis, refactoring, software renovation, and
reverse engineering. Complex program transformations are achieved through a number
of consecutive modifications of a program. Transformation rules define basic
modifications. A transformation strategy is an algorithm for choosing a path in
the rewrite relation induced by a set of rules. This paper surveys the support for
the definition of strategies in program transformation systems. After a discussion
of kinds of program transformation and choices in program representation, the basic
elements of a strategy system are discussed and the choices in the design of a
strategy language are considered. Several styles of strategy systems as provided in
existing languages are then analyzed.