Program Transformation
The topic of metaprogramming techniques that act on whole programs, which also encompasses code generation and optimization. The primary resource on this is Program-Transformation.Org.- The classical, often cited in program transformation papers, fold/unfold framework by Burstall & Darlington:
- The original paper (1977), scanned (.pdf) A Transformation System for Developing Recursive Programs (archived also at CiteSeer)
- A note (.ps): Unfold/Fold Transformation.
- A Comparative Revisitation of Some Program Transformation Techniques.
- See also A taxonomy of program transformers.
A list of program transformation techniques and tools:
- Partial Evaluation - A term for the metaprogramming technique that consists in program transformation into simpler programs specialized for execution in an environment where some information is known as compared to a generic environment
- Stratego - Stratego is a programming language for program transformation through rewrite rules
- Supercompilation - Or Supervised Compilation (SCP) is a program transformation technique by Valentin F. Turchin which he applied originally to the programming language REFAL
- Update Programming - Program transformation and metaprogramming techniques applied to the problem of software maintenance and reuse; as clearly showed by the Euler/Venn diagram on its home page, these techniques are at the intersection of Sofware Maintenance, Safety & Reliability and metaprogramming
Pages in this topic: Partial Evaluation Stratego Supercompilation Update Programming
Also linked from: Eelco Visser Language Implementation Program-Transformation.Org