A Taxonomy for Program Generators and Analyzers
|
|
20030317213638
Stumbled upon a paper that describes a Taxonomy of Meta-Programming Systems. It's a short paper however it's a good overview of programs that generate and analyze other programs. Here's the taxonomy:
Generator
- Representation: Strings vs. Algebraic datatype vs. Quasi-quote
- Automatic vs. Manual annotation
- Static Generator vs. Runtime Generator
- Homogeneous vs. Heterogeneous
- Typed vs. un-Typed
- Statically Typed vs. Dynamically Typed
- Two-stage vs. N-stage
Analysis
- Homogeneous vs. Heterogeneous
- Higher Order Abstract Syntax vs. First Order Syntax
- Typed vs. un-Typed
Another taxonomy can be found in A Survey of Rewriting Strategies in Program Transformation Systems.
- Translation
- Migration
- Synthesis
- Reverse Engineering
- Analysis
- Rephrasing
- Normalization
- Optimization
- Refactoring
- Renovation
Less abstract than the first, more like an enumeration of program transformation instances.

