On One-Pass CPS Transformations
Olivier Danvy
March 2007 |
Abstract:
We bridge two distinct approaches to one-pass CPS
transformations, i.e., CPS transformations that reduce administrative redexes
at transformation time instead of in a post-processing phase. One approach is
compositional and higher-order, and is independently due to Appel, Danvy and
Filinski, and Wand, building on Plotkin's seminal work. The other is
non-compositional and based on a reduction semantics for the lambda-calculus,
and is due to Sabry and Felleisen. To relate the two approaches, we use three
tools: Reynolds's defunctionalization and its left inverse,
refunctionalization; a special case of fold-unfold fusion due to Ohori and
Sasano, fixed-point promotion; and an implementation technique for reduction
semantics due to Danvy and Nielsen, refocusing.
This work is directly applicable to transforming programs into monadic normal form. Available as PostScript, PDF, DVI. |