Program transformation
From Wikipedia, the free encyclopedia
A Program Transformation is any operation which takes a program and generates a semantically equivalent program.
A generalisation of semantic equivalence is the notion of refinement: one program is a refinement of another if it terminates on all the initial states for which the original program terminates, and for each such state it is guaranteed to terminate in a possible final state for the original program. In other words, a refinement of a program is more defined' and more deterministic than the original program. If two programs are refinements of each other, then the programs are equivalent.
The FermaT Transformation System contains implementations for many program transformations.
A practical requirement for program transformation systems is that they be able to process the source code for the programming language of the application system to be transformed. For many languages, the problem of building an adequate front end for the transformation tool may overshadow the value of the tool itself. For instance, transforming C++ is a notoriously hard problem. For a program transformation system to be used in a wide variety of circumstances, it must be able to handle a wide variety of languages.
The DMS Software Reengineering Toolkit is able to handle many widely available languages and their dialects, including C++.

