Abstract continuations: a mathematical semantics for handling full jumps

Continuation semantics is the traditional mathematical formalism for specifying the semantics of non-local control operations. Modern Lisp-style languages, however, contain advanced control structures like full functional jumps and control delimiters for which continuation semantics is insufficient. We solve this problem by introducing an abstract domain of rests of computations with appropriate operations. Beyond being useful for the problem at hand, these abstract continuations turn out to have applications in a much broader context, e.g., the explication of parallelism, the modeling of control facilities in parallel languages, and the design of new control structures.

[1]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[2]  Gerald Jay Sussman,et al.  An Interpreter for Extended Lambda Calculus , 1975 .

[3]  David A. Schmidt,et al.  Denotationaisemantics: a methodology for language development , 1986 .

[4]  Matthias Felleisen,et al.  Control operators, the SECD-machine, and the λ-calculus , 1987, Formal Description of Programming Concepts.

[5]  Brian Cantwell Smith,et al.  Reflection and semantics in LISP , 1984, POPL.

[6]  Gregory F. Johnson,et al.  Stores and partial continuations as first-class objects in a language and its environment , 1988, POPL '88.

[7]  John C. Reynolds,et al.  Definitional Interpreters for Higher-Order Programming Languages , 1972, ACM '72.

[8]  Christopher Strachey,et al.  Os6: an operating system for a small computer , 1972 .

[9]  Christopher Strachey,et al.  OS6 - an experimental operating system for a small computer. Part 1: general principles and structure , 1972, Comput. J..

[10]  W. Daniel Hillis,et al.  Connection Machine Lisp: fine-grained parallel symbolic processing , 1986, LFP '86.

[11]  Samuel N. Kamin Final data type specifications: a new data type specification method , 1980, POPL '80.

[12]  Mitchell Wand,et al.  Final Algebra Semantics and Data Type Extensions , 1979, J. Comput. Syst. Sci..

[13]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[14]  Gerald Jay Sussman,et al.  The Revised Report on SCHEME: A Dialect of LISP. , 1978 .

[15]  Mitchell Wand,et al.  Continuation-Based Multiprocessing , 1980, High. Order Symb. Comput..

[16]  Matthias Felleisen,et al.  The theory and practice of first-class prompts , 1988, POPL '88.

[17]  G.D. Plotkin,et al.  LCF Considered as a Programming Language , 1977, Theor. Comput. Sci..