Obtaining coroutines with continuations
Computer Languages
Proceedings of the Twenty-First Annual Hawaii International Conference on Software Track
Typing first-class continuations in ML
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A syntactic approach to type soundness
Information and Computation
Design of a separable transition-diagram compiler
Communications of the ACM
CLU Reference Manual
Coroutines
The Art of Computer Programming, 2nd Ed. (Addison-Wesley Series in Computer Science and Information
The Art of Computer Programming, 2nd Ed. (Addison-Wesley Series in Computer Science and Information
Higher-Order and Symbolic Computation
Programming in Modula-2
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Towards deriving type systems and implementations for coroutines
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
A logical correspondence between natural semantics and abstract machines
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Hi-index | 0.00 |
A coroutine is a programming construct between function and thread. It behaves like a function that can suspend itself arbitrarily often to yield intermediate results and to get new inputs before returning a result. This facility makes coroutines suitable for implementing generator abstractions. Languages that support coroutines are often untyped or they use trivial types for coroutines. This work supplies the first type system with dedicated support for coroutines. The type system is based on the simply-typed lambda calculus extended with effects that describe control transfers between coroutines.