Abstract:
The last few years have seen a renewed interest in continuations for expressing advanced control structures in programming languages, and new models such as Abstract Continuations have been proposed to capture these dimensions. This article investigates an alternative formulation, exploiting the latent expressive power of the standard continuation-passing style (CPS) instead of introducing yet other new concepts. We build on a single foundation: abstracting control as a hierarchy of continuations, each one modeling a specific language feature as acting on nested evaluation contexts. We show how iterating the continuation-passing conversion allows us to specify a wide range of control behavior. For example, two conversions yield an abstraction of Prologstyle backtracking. A number of other constructs can likewise be expressed i...
Citations
|
2010
|
The Design and Analysis of Computer Algorithms
– Aho, Hopcroft, et al.
- 1974
|
|
225
|
Call-by-name, call-by-value, and the -calculus
– Plotkin
- 1975
|
|
224
|
Definitional interpreters for higher-order programming languages
– Reynolds
- 1972
|
|
68
|
A Theory of Programming Language Semantics
– Milne, Srachey
- 1963
|
|
53
|
Abstract continuations: A mathematical semantics for handling full functional jumps
– Felleisen, Wand, et al.
- 1988
|
|
45
|
Sussman with Julie Sussman. Structure and Interpretation of Computer Programs
– Abelson, Jay
- 1985
|
|
39
|
A functional abstraction of typed contexts
– Danvy, Filinski
- 1989
|
|
34
|
Intensions and extensions in the reflective tower
– Danvy, Malmkjaer
- 1988
|
|
33
|
Beyond continuations
– Felleisen, Friedman, et al.
- 1987
|
|
29
|
Embedding Continuations in Procedural Objects
– Haynes, Friedman
- 1987
|
|
13
|
Proving algorithms by tail functions
– Mazurkiewicz
- 1971
|
|
9
|
GL -- A Denotational Testbed with Continuations and Partial Continuations as First-Class Objects
– Johnson
- 1987
|
|
5
|
A bonus from van Wijngaarden’s device
– Morris
- 1972
|
|
4
|
Felleisen: The Theory and Practice of First-Class Prompts
– Matthias
- 1988
|
|
3
|
MultiScheme: A Parallel Processing
– Miller
- 1987
|
|
3
|
Moggi: Computational Lambda-calculus and Monads
– Eugenio
- 1989
|
|
2
|
Eugene Kohlbecker: Programming with Continuations
– Friedman, Haynes
- 1984
|
|
2
|
Duggan: Stores and Partial Continuations as First-Class Objects in a Language and its Environment
– Johnson, Dominic
- 1988
|
|
1
|
Barendregt: The Lambda Calculus, Its Syntax and Semantics, revised edition
– Hendrick
- 1985
|
|
1
|
Danvy: Programming with Tighter Control, pp 10-29 of the BIGRE journal, No 65 on Putting Scheme to
– Olivier
- 1989
|
|
1
|
Lambda Calculus Schemata, proceedings of the ACM conference Proving assertions about programs pp 104-109
– Fischer
- 1972
|
|
1
|
Malmkjaer: On some Semantic Aspects of the Reflective Tower
– Karoline
- 1989
|
|
1
|
On the Relation between Direct and
– Reynolds
|