|
Abstract:
We show how to construct a one-pass optimizing transformation by fusing a non-optimizing transformation with an optimization pass. We state the transformation in build form and the optimization pass in cata form, i.e., as a catamorphism; and we use cata/build fusion to combine them. We illustrate the method by fusing Plotkin's call-by-value and call-by-name CPS transformations with a reduction-free normalization function for the lambda-calculus, thus obtaining two new one-pass CPS transformations. The method can be used to construct other one-pass transformations via program fusion.
|