15-851 Computation and Deduction
Lecture 14: Compiler Correctness
We prove the correctness of the environment machine with respect to the
original operational semantics for Mini-ML. The key lemmas require us
to show that every value of the original program can be produced be
a compiled program, and that every value of the compiled program can
be produced by the original program---another bisimulation result.
We also discuss the complications that arise if we permit recursion into the
language: either we have to be able to build recursive environments, recursive
values, or store expressions as well as values in the environment.