MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

A Correspondence between Continuation Passing Style and Static Single Assignment Form (1995) [27 citations — 0 self]

by Richard Kelsey
ACM SIGPLAN Notices
Add To MetaCart

Abstract:

We define syntactic transformations that convert continuation passing style (CPS) programs into static single assignment form (SSA) and vice versa. Some CPS programs cannot be converted to SSA, but these are not produced by the usual CPS transformation. The CPS!SSA transformation is especially helpful for compiling functional programs. Many optimizations that normally require flow analysis can be performed directly on functional CPS programs by viewing them as SSA programs. We also present a simple program transformation that merges CPS procedures together and by doing so greatly increases the scope of the SSA flow information. This transformation is useful for analyzing loops expressed as recursive procedures. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by per...

Citations

644 Efficiently computing static single assignment form and the control dependence graph – Cytron, Ferrante, et al. - 1991
574 Compiling with Continuations – Appel - 1992
228 Control-Flow Analysis of Higher-Order Languages or Taming Lambda – Shivers - 1991
191 Orbit: An optimizing compiler for Scheme – Kranz, Kelsey, et al. - 1986
157 The revised report on the algorithmic language Scheme – Clinger, Rees - 1991
128 Eds. Essentials of Programming Languages – Friedman, Wand, et al. - 1992
112 RABBIT: A compiler for SCHEME – Steele - 1978
79 Effective partial redundancy elimination – Briggs, Cooper - 1994
79 Beyond induction variables – Wolfe - 1992
69 Realistic compilation by program transformation – Kelsey, Hudak - 1989
21 Is Continuation-Passing Useful for Data Flow Analysis – Sabry, Felleisen - 1994
2 High level compiling for low level machines – O'Donnell - 1994