The program analysis required for optimization is defined over the input program whereas the soundness conditions of a transformation primitive need to be shown on the version of the program on which it is applied. We express both in a temporal logic. We also develop a logic called temporal transformation logic to correlate temporal properties over a program (seen as a Kripke structure) and its transformation.
An interesting possibility created by this approach is a novel scheme for validating optimizer implementations.
An optimizer can be instrumented to generate
a trace of its transformations in terms
of the transformation primitives.
Conformance of the trace with the optimizer can be checked through simulation.
If soundness conditions of the underlying primitives are satisfied by the trace
then it preserves semantics.
Electronic Notes in Theoretical Computer Science, 176(3), 2007, pp. 79-95,
© Elsevier.
PDF.
DBLP.