Typing first-class continuations in ML
- 1 October 1993
- journal article
- research article
- Published by Cambridge University Press (CUP) in Journal of Functional Programming
- Vol. 3 (4), 465-484
- https://doi.org/10.1017/s095679680000085x
Abstract
An extension of ML with continuation primitives similar to those found in Scheme is considered. A number of alternative type systems are discussed, and several programming examples are given. A continuation-based operational semantics is defined for a small, purely functional language, and the soundness of the Damas–Milner polymorphic type assignment system with respect to this semantics is proved. The full Damas–Milner type system is shown to be unsound in the presence of first-class continuations. Restrictions on polymorphism similar to those introduced in connection with reference types are shown to suffice for soundness.Keywords
This publication has 15 references indexed in Scilit:
- Type inference for polymorphic referencesInformation and Computation, 1990
- Engines from continuationsComputer Languages, 1989
- A syntactic theory of sequential controlTheoretical Computer Science, 1987
- Embedding continuations in procedural objectsACM Transactions on Programming Languages and Systems, 1987
- Logic continuationsThe Journal of Logic Programming, 1987
- Abstracting timed preemption with enginesComputer Languages, 1987
- Obtaining coroutines with continuationsComputer Languages, 1986
- Logical relations and the typed λ-calculusInformation and Control, 1985
- GEDANKEN—a simple typeless language based on the principle of completeness and the reference conceptCommunications of the ACM, 1970
- Correspondence between ALGOL 60 and Church's Lambda-notationCommunications of the ACM, 1965