A methodology is described for generating provably correct compilers from denotational definitions of programming languages.
Correctness follows from the correctness of phi.
The algebraic framework of Morris, ADJ, etc. is used. This approach yields quite redundant object programs, so the paper ends by describing two flow analytic optimization methods. The second analyzes the generated compiling scheme to determine runtime properties of object programs in general which a compiler can use to produce less redundant STMs.