A Taxonomy for Program Generators and Analyzers

Share the article!


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:


  1. Representation: Strings vs. Algebraic datatype vs. Quasi-quote

  2. Automatic vs. Manual annotation

  3. Static Generator vs. Runtime Generator

  4. Homogeneous vs. Heterogeneous

  5. Typed vs. un-Typed

    1. Statically Typed vs. Dynamically Typed

  6. Two-stage vs. N-stage


  1. Homogeneous vs. Heterogeneous

  2. Higher Order Abstract Syntax vs. First Order Syntax

  3. Typed vs. un-Typed

Another taxonomy can be found in A Survey of Rewriting Strategies in Program Transformation Systems.

  • Translation

    1. Migration

    2. Synthesis

    3. Reverse Engineering

    4. Analysis

  • Rephrasing

    1. Normalization

    2. Optimization

    3. Refactoring

    4. Renovation

Less abstract than the first, more like an enumeration of program transformation instances.

Share the article!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>