• Home
  • Search
  • The essence of compiling with continuations
  • Open Access IconOpen Access
  • Cite Icon563
  • https://doi.org/10.1145/155090.155113Copy DOI Icon

The essence of compiling with continuations

  • Jun 1, 1993
  • Cormac Flanagan +3 more
Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

In order to simplify the compilation process, many compilers for higher-order languages use the continuation-passing style (CPS) transformation in a first phase to generate an intermediate representation of the source program. The salient aspect of this intermediate form is that all procedures take an argument that represents the rest of the computation (the “continuation”). Since the nai¨ve CPS transformation considerably increases the size of programs, CPS compilers perform reductions to produce a more compact intermediate representation. Although often implemented as a part of the CPS transformation, this step is conceptually a second phase. Finally, code generators for typical CPS compilers treat continuations specially in order to optimize the interpretation of continuation parameters.

Similar Papers
  • PDF
  • Research Article

On Correspondence between Selective CPS Transformation and Selective Double Negation Translation

  • Feb 15, 2021
  • Mathematics
  • Hyeonseung Im
  • Research Article
  • Citations1

On the Idempotence of the CPS Transformation

  • May 04, 1996
  • BRICS Report Series
  • Olivier Danvy +1
  • Research Article
  • Citations5

A Simple CPS Transformation of Control-Flow Information

  • Dec 04, 2001
  • BRICS Report Series
  • Daniel Damian +1
  • Conference Article
  • Citations138

Reasoning about programs in continuation-passing style.

  • Jan 01, 1992
  • Amr Sabry +1
  • Research Article
  • Citations45

A static simulation of dynamic delimited control

  • Oct 24, 2007
  • Higher-Order and Symbolic Computation
  • Chung-Chieh Shan
  • PDF
  • Research Article
  • Citations9

Reasoning about effect interaction by fusion

  • Aug 19, 2021
  • Proceedings of the ACM on Programming Languages
  • Zhixuan Yang +1
  • Single Book
  • Citations832

Compiling with Continuations

  • Nov 29, 1991
  • Andrew W Appel
  • Book Chapter
  • Citations4

Sharing Continuations: Proofnets for Languages with Explicit Control

  • Jan 01, 2000
  • Julia L Lawall +1
  • Conference Article
  • Citations24

A graph-based higher-order intermediate representation

  • Feb 07, 2015
  • Roland Leisa +2
  • Conference Article
  • Citations13

Self-Representation in Girard's System U

  • Jan 14, 2015
  • Matt Brown +1
  • Conference Article
  • Citations39

A MLIR Dialect for Quantum Assembly Languages

  • Oct 01, 2021
  • Alexander Mccaskey +1
  • Book Chapter
  • Citations1

J Is for JavaScript: A Direct-Style Correspondence between Algol-Like Languages and JavaScript Using First-Class Continuations

  • Jan 01, 2009
  • Olivier Danvy +2
  • Research Article
  • Citations180

Delite

  • Apr 01, 2014
  • ACM Transactions on Embedded Computing Systems
  • Arvind K Sujeeth +6
  • PDF
  • Research Article
  • Citations10

Refunctionalization of abstract abstract machines: bridging the gap between abstract abstract machines and abstract definitional interpreters (functional pearl)

  • Jul 30, 2018
  • Proceedings of the ACM on Programming Languages
  • Guannan Wei +2
  • Book Chapter
  • Citations73

If: An Intermediate Representation and Validation Environment for Timed Asynchronous Systems

  • Jan 01, 1999
  • Marius Bozga +5
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.