Electronic Notes in Theoretical Computer Science · 2001 · 122 citations · 40 references
ComputingComputer ScienceStrategyCompilersProgramming LanguagesSoftware EngineeringReverse EngineeringSoftware DesignSoftware RefactoringTransformation StrategyCompiler DesignProgram OptimizationProgram RepresentationProgram SynthesisProgram TransformationRewrite SystemsRewriting SystemsSoftware Restructuring
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.
40
Frank Pfenning, Conal Elliott · ACM SIGPLAN Notices · 1988 · 587 citations · Full text
Modern software tools for scientific computing
Choice Reviews Online · 1997 · 516 citations