Assignment Classifying Transformations

Pt
In the first lecture and in Chapter 1 a classification and a number of examples of program transformations where given. The goal of this assignment is to classify a number of actual program transformations by observing their effect on programs. The Tiger TransformDemo provides a web-interface to a number of transformations on Tiger programs labeled with letters from A to M. Each of these transformations corresponds to a transformation from the following list:

  • Bound Variable Renaming
  • Canonical (side-effect) free expressions
  • Compilation
  • Desugaring
  • Escaping Variables Analysis
  • Function Inlining
  • Interpreting
  • Pretty-printing
  • Running Compiled Program
  • Tail Recursion Elimination
  • Trace Instrumentation
  • Translation to Intermediate Representation
  • Typechecking

You should find out the correspondence by applying them to some programs.

(Note that transformation M loops on program merge; so avoid that one)

Submission

Submit a single ascii file classification.txt with for each transformation letter, its name, and its minor and major category in the classification. The file should use the following format:

----------------------------------------------------------
Name: <your name>
Number : <your student number>

Transformation Z : Foobarring - Normalization - Rephrasing 
----------------------------------------------------------

Other Demonstrations

Note that the transformation demonstration referred to above also contains other sections which allow you to make your own transformation compositions. See