Results 1 
3 of
3
Using a Continuation Twice and Its Implications for the Expressive Power of Call/cc
, 1998
"... . We study the implications for the expressive power of call/cc of upward continuations, specifically the idiom of using a continuation twice. Although such control effects were known to Landin and Reynolds when they invented J and escape, the forebears of call/cc, they still act as a conceptual pit ..."
Abstract

Cited by 11 (3 self)
 Add to MetaCart
. We study the implications for the expressive power of call/cc of upward continuations, specifically the idiom of using a continuation twice. Although such control effects were known to Landin and Reynolds when they invented J and escape, the forebears of call/cc, they still act as a conceptual pitfall for some attempts to reason about continuations. We use this idiom to refute some recent conjectures about equivalences in a language with continuations, but no other effects. This shows that firstclass continuations as given by call/cc have greater expressive power than one would expect from goto or exits. Keywords: call/cc, continuations, upward continuations, expressiveness, program equivalence. 1. Introduction You can enter a room once, and yet leave it twice. (Peter Landin) A common informal explanation of continuations is the comparison with forward goto. This is in some sense a very apt simile: forward gotos obviously do not give rise to loops, and continuations, without some ...
Monadic Type Systems: Pure Type Systems for Impure Settings (Preliminary Report)
 In Proceedings of the Second HOOTS Workshop
, 1997
"... Pure type systems and computational monads are two parameterized frameworks that have proved to be quite useful in both theoretical and practical applications. We join the foundational concepts of both of these to obtain monadic type systems. Essentially, monadic type systems inherit the parameteriz ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
Pure type systems and computational monads are two parameterized frameworks that have proved to be quite useful in both theoretical and practical applications. We join the foundational concepts of both of these to obtain monadic type systems. Essentially, monadic type systems inherit the parameterized higherorder type structure of pure type systems and the monadic term and type structure used to capture computational effects in the theory of computational monads. We demonstrate that monadic type systems nicely characterize previous work and suggest how they can support several new theoretical and practical applications. A technical foundation for monadic type systems is laid by recasting and scaling up the main results from pure type systems (confluence, subject reduction, strong normalisation for particular classes of systems, etc.) and from operational presentations of computational monads (notions of operational equivalence based on applicative similarity, coinduction proof techni...
15819 Typed Compilation
, 2000
"... ribed where the target language is a typed assembly language [MWCG98]. As usual, a typepreserving transformation relates the two languages. 1.1 The source language The source language for the translation is the usual core lambda calculus already introduced. However, in the interest of moving towa ..."
Abstract
 Add to MetaCart
ribed where the target language is a typed assembly language [MWCG98]. As usual, a typepreserving transformation relates the two languages. 1.1 The source language The source language for the translation is the usual core lambda calculus already introduced. However, in the interest of moving toward a more realistic source language, the constructor for functions has been made recursive. Also, a few operations on the integers have been provided. Types ::= ff Type variable j int The integer type j 1 \Theta 2 Product type j 1 ! 2 Function type j 8ff: Universal quantifier Expressions e ::= x Variable j i Integer constant 1 j e 1 + e 2