@TechReport{Tullsen-Hudak:RR1998, author = "Mark Tullsen and Paul Hudak", title = "An Intermediate Meta-Language for Program Transformation", institution = "Yale University", month = jun, year = "1998", number = "YALEU/DCS/RR-1154", abstract = "As part of an effort to bridge the gap between the theory and practice of program transformation, we have designed a meta-language for transforming functional programs. The meta-language is sound in preserving both value and termination properties of programs (and is thus superior to the unfold/fold methodology). Our key contribution is an equational specification of Scherlis's expression procedures, in which we express the essence of expression procedures as a single transformation rule. Our approach has the following advantages over both unfold/fold and expression procedures: (1) all program derivations are reversible; (2) many transformations can be done which unfold/fold and expression procedures cannot do; and (3) the proof of correctness is far simpler.", }