A Correspondence between Continuation Passing Style and Static Single Assignment Form (1995) [27 citations — 0 self]
http://mumble.net/~kelsey/./papers/cps-ssa.ps.gz
http://www.bcl.hamilton.ie/~bap/teach/F99/ALIT/pap
DBLP
CACHED:
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 |

