## On the call-by-value CPS transform and its semantics (2004)

Citations: | 5 - 0 self |

### BibTeX

@MISC{Führmann04onthe,

author = {Carsten Führmann and Hayo Thielecke},

title = { On the call-by-value CPS transform and its semantics},

year = {2004}

}

### OpenURL

### Abstract

We investigate continuations in the context of idealized call-by-value programming languages. On the semantic side, we analyze the categorical structures that arise from continuation models of call-by-value languages. On the syntactic side, we study the call-by-value continuation-passing transformation as a translation between equational theories. Among the novelties are an unusually simple axiomatization of control operators and a strengthened completeness result with a proof based on a delaying transform.

### Citations

732 | Notions of computation and monads - Moggi - 1991 |

620 |
Compiling with continuations
- Appel
- 1992
(Show Context)
Citation Context ...n map to have an inverse. • An account of the target language of the CPS transform as a calculus in its own right. The intention is to make the connection with intermediate languages in CPS compiler=-=s [29, 2] more-=- explicit. Furthermore, since the CPS calculus is very close to the π-calculus, the role of CPS in translating call-by-value λ-calculus into the π-calculus is also clarified. • A delaying transfo... |

442 | Computational lambda-calculus and monads - Moggi - 1988 |

235 | A formulae-as-types notion of control - Griffin - 1990 |

218 | Categories for the working mathematician, volume 5 of Graduate Texts in Mathematics - Lane - 1998 |

199 | Call-by-name, call-by-value, and the λ-calculus - Plotkin - 1975 |

161 | M.: Reasoning about programs in continuation-passing style - Sabry, Felleisen - 1993 |

112 | Continuations: A mathematical semantics for handling full jumps - Strachey, Wadsworth - 2000 |

110 | The discoveries of continuations - Reynolds - 1993 |

100 | Lambda calculus schemata - Fischer - 1972 |

100 | Premonoidal categories and notions of computation - Power - 1997 |

93 | Typing first-class continuations in ML
- Duba, Harper, et al.
- 1987
(Show Context)
Citation Context ...hat we can provide an operation to give the programmer explicit access to them. The canonical construct for doing this is the call/cc construct in Scheme [1] and the New Jersey dialect of Standard ML =-=[4]. -=-We will use a variant of call/cc, Felleisen’s C-operator, which is technically more convenient. Specifically, we prove that such a control operator can be added to the computational axioms in a surp... |

84 | Control categories and duality: on the categorical semantics of the λµ-calculus - Selinger - 1999 |

71 | Categorical Structure of Continuation Passing Style - Thielecke - 1997 |

65 | The π-Calculus in Direct Style
- Boudol
- 1998
(Show Context)
Citation Context ... in translating call-by-value λ-calculus into the π-calculus is also clarified. The reconstruction of such translations as continuation-passing was independently discovered by a number of researcher=-=s [3, 33]-=-. 4.1 The CPS calculus The CPS calculus is presented in Figure 2. We distinguish between primitive expressions P , Q, which have a type, and command expressions L, M, N, which have no type. The CPS la... |

58 |
Reasoning with continuations
- Felleisen, Friedman, et al.
- 1986
(Show Context)
Citation Context ...shed by Fischer [8] and Plotkin [23], though the term continuation-passing transformation itself was only coined later by Steele [29]. Felleisen et. al. were the first to axiomatise control operators =-=[5]-=-. Felleisen and Sabry gave a completeness proof for the CPS transforms [27]. Their techniques were syntactic, whereas Hofmann [15], at about the same time, used categorical techniques. The typing of c... |

38 |
Declarative Continuations: An Investigation of Duality in Programming Language Semantics
- Filinski
- 1989
(Show Context)
Citation Context ...gh we do not explore the logic side here) was discovered by Griffin [12], and incorporated by Duba, Harper and MacQueen in the New Jersey dialect of Standard ML [4]. On the categorical side, Filinski =-=[6] p-=-ioneered the treatment of continuation operations as categorical structure in their own right. Moggi’s programme of monads as notions of computation [21] is a general account of various effects, whi... |

31 | A generalisation of jumps and labels - Landin - 1965 |

22 | Thunks: a way of compiling procedure statements with some comments on procedure declarations - Ingerman - 1961 |

21 | Thunks and the λ-calculus - Hatcliff, Danvy - 1997 |

18 | Sound and complete axiomatisations of call-by-value control operators - Hofmann - 1995 |

13 | Typing First-Class Continuations in - Duba, Harper, et al. - 1993 |

12 | The structure of call-by-value - Führmann - 2000 |

12 | Varieties of effects - Führmann - 2002 |

11 | Revised 5 Report on the Algorithmic Language Scheme,” Feb
- Abelson, Dybvig, et al.
- 1998
(Show Context)
Citation Context ...inuations can be added to the λC-calculus in that we can provide an operation to give the programmer explicit access to them. The canonical construct for doing this is the call/cc construct in Scheme=-= [1] a-=-nd the New Jersey dialect of Standard ML [4]. We will use a variant of call/cc, Felleisen’s C-operator, which is technically more convenient. Specifically, we prove that such a control operator can ... |

11 | Axioms for recursion in call-by-value - Hasegawa, Kakutani - 2002 |

11 | Closed Freyd- and kappa-categories - Power, Thielecke - 1999 |

10 | Recursion from iteration - Filinski - 1994 |

8 | Direct models of the computational lambda-calculus - Führmann - 1999 |

7 | Sober spaces and continuations, Theory and Applications of Categories 10 - Taylor - 2002 |

2 | Rabbit: A compiler for Scheme, AI - Steele - 1978 |