×

Delimited control and computational effects. (English) Zbl 1297.68048

Summary: We give a framework for delimited control with multiple prompts, in the style of Parigot’s \(\lambda \mu\)-calculus, through a series of incremental extensions by starting with the pure \(\lambda\)-calculus. Each language inherits the semantics and reduction theory of its parent, giving a systematic way to describe each level of control. For each language of interest, we fully characterize its semantics in terms of a reduction semantics, operational semantics, continuation-passing style transform, and abstract machine. Furthermore, the control operations are expressed in terms of fine-grained primitives that can be used to build well-known, higher-level control operators. In order to illustrate the expressive power provided by various languages, we show how other computational effects can be encoded in terms of these control operators.

MSC:

68N18 Functional programming and lambda calculus
03B40 Combinatory logic and lambda calculus
PDFBibTeX XMLCite
Full Text: DOI

References:

[1] Proceedings of the 1990 ACM Conference on LISP and Functional Programming. pp 161– (1990)
[2] Logic Programming and Automated Reasoning. pp 190– (1992)
[3] DOI: 10.1007/s10990-007-9010-4 · Zbl 1128.68010 · doi:10.1007/s10990-007-9010-4
[4] Proceedings of the 25th ACM National Conference. pp 717– (1972)
[5] Functional Programming Languages and Computer Architecture ’95. pp 12– (1995)
[6] Principles of Programming Languages ’94. pp 446– (1994)
[7] LISP and Functional Programming pp 52– (1988)
[8] J. Funct. Program. 17 pp 687– (2007)
[9] DOI: 10.1016/0304-3975(92)90014-7 · Zbl 0764.68094 · doi:10.1016/0304-3975(92)90014-7
[10] Procedings of the 21st European Symposium on Programming. pp 234– (2012)
[11] DOI: 10.1023/A:1010087314987 · Zbl 0934.68038 · doi:10.1023/A:1010087314987
[12] DOI: 10.1016/0890-5401(91)90052-4 · Zbl 0723.68073 · doi:10.1016/0890-5401(91)90052-4
[13] Proceedings of the Fourth Annual Symposium on Logic in Computer Science pp 14– (1989)
[14] Proceeding of the 16th ACM Sigplan International Conference on Functional Programming (ICFP ’11). pp 81– (2011)
[15] Proceedings of the Eleventh ACM Sigplan International Conference on Functional Programming (ICFP ’06). pp 26– (2006)
[16] Functional and Logic. Programming pp 304– (2010)
[17] Proceedings of the Eighth ACM Sigplan International Conference on Functional Programming (ICFP ’03). pp 177– (2003)
[18] DOI: 10.1016/0304-3975(87)90109-5 · Zbl 0643.03011 · doi:10.1016/0304-3975(87)90109-5
[19] Proceedings of the 1990 ACM Conference on LISP and Functional Programming. pp 151– (1990)
[20] Parallel Architectures and Languages Europe (PARLE) pp 206– (1987) · Zbl 0624.68001
[21] A Functional Abstraction of Typed Contexts (1989)
[22] DOI: 10.1016/0167-6423(91)90036-W · Zbl 0745.68033 · doi:10.1016/0167-6423(91)90036-W
[23] Log. Methods Comput. Sci. 1 pp 1– (2005)
[24] DOI: 10.1007/s10990-007-9006-0 · Zbl 1213.68187 · doi:10.1007/s10990-007-9006-0
[25] First International Workshop on the Theory and Practice of Delimited Continuations pp 6– (2011)
[26] J. Funct. Program. 18 pp 373– (2008)
[27] DOI: 10.1016/0304-3975(75)90017-1 · Zbl 0325.68006 · doi:10.1016/0304-3975(75)90017-1
[28] DOI: 10.1007/BF01806126 · doi:10.1007/BF01806126
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.