Abstract:
This thesis presents a formalism for reasoning about continuations in a categorical setting. It points out how values and continuations ca n be seen as categorically dual concepts, and that this symmetry extends to not only data types, but also control structures, evaluation strategies and higher-order constructs. The central idea is a view of continuations as a declarative concept, rather than an imperative one, and the implicat ions of this make up the spine of the presentation. A symmetrical extension of the typed *-calculus is introduced, where values and continuations are treated as opposites, permitting a mirror-image syntax for dual categorical concepts like products and coproducts. An implementable semantic description and a static type system for this calculus are given. A purely categorical description of the language is also obtained, through a correspondence with a system of combinatory logic, similar to a cartesian closed category, but with a completely symmetrical set of axioms. Finally, a number of possible practical applications and directions for further research are suggested.
Citations
|
1137
|
Smalltalk-80: The Language and Its Implementation
– Goldberg, Robson
|
|
467
|
A semantics of multiple inheritance
– Cardelli
- 1984
|
|
404
|
The Science of Programming
– Gries
- 1981
|
|
388
|
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
– Stoy
- 1977
|
|
370
|
Programming be Liberated from the von Neumann Style? AFunctional Style and its Algebra of Programs," in \ACM Turing Award Lectures: The First Twenty Years
– Backus, \Can
- 1987
|
|
343
|
Viewing control structures as patterns of passing messages
– Hewitt
- 1977
|
|
325
|
Introduction to Higher Order Categorical Logic
– Lambek, Scott
- 1986
|
|
270
|
Denotational semantics: A Methodology for Language Development
– Schmidt
- 1986
|
|
225
|
Call-by-name, call-by-value, and the -calculus
– Plotkin
- 1975
|
|
224
|
Definitional interpreters for higher-order programming languages
– Reynolds
- 1972
|
|
101
|
Continuation-passing, closure-passing style
– Appel, Jim
- 1989
|
|
85
|
Continuations: A Mathematical Semantics for Handling Full Jumps
– Strachey, Wadsworth
- 1974
|
|
82
|
The linear abstract machine
– Lafont
- 1988
|
|
73
|
Algebraic Approaches to Program Semantics
– Manes, Arbib
- 1986
|
|
72
|
CONS should not evaluate its arguments
– Friedman, Wise
- 1976
|
|
67
|
Backwards analysis of functional programs
– Hughes
- 1988
|
|
47
|
Computational Category Theory
– Rydeheard, Burstall
- 1988
|
|
39
|
A functional abstraction of typed contexts
– Danvy, Filinski
- 1989
|
|
27
|
Shallow binding in lisp 1.5
– Baker
|
|
26
|
Jones: The Implementation of Functional Programming Languages
– Peyton
- 1987
|
|
15
|
Arrows, structures, and functors: The categorical imperative
– Arbib, Manes
- 1975
|
|
15
|
Analysing strictness by abstractinterpretation of continuations
– Hughes
- 1987
|
|
9
|
Principal type-schemes for functional languages
– Damas, Milner
- 1982
|
|
8
|
et al. Lisp 1.5 Programmer's Manual
– McCarthy
- 1965
|
|
8
|
Constructing call-by-value continuation semantics
– Sethi, Tang
- 1980
|
|
4
|
Felleisen: The Theory and Practice of First-Class Prompts
– Matthias
- 1988
|
|
4
|
Mads Tofte: The Definition of Standard ML, Version 2
– Harper, Milner
- 1988
|
|
4
|
MACLANE Categories for the working mathematician
– Saunders
- 1971
|
|
3
|
Iverson: A Programming Language
– E
- 1962
|
|
3
|
Moggi: Computational Lambda-calculus and Monads
– Eugenio
- 1989
|
|
2
|
Bj��rn Myhrhaug, and Kristen Nygaard: Simula
– Dahl
- 1970
|
|
1
|
Dijkstra: Goto Statement Considered Harmful
– Edger
- 1968
|
|
1
|
et al.: Behavioral Semantics of Nonrecursive Control Structures
– Hewitt
- 1974
|
|
1
|
Huwig and Axel Poign'e: A Note on Inconsistencies Caused by Fixpoints in a Cartesian Closed Category
– Hagen
- 1986
|
|
1
|
and Niklaus Wirth: PASCAL: User Manual and Report
– Jensen
- 1974
|
|
1
|
Poign'e: On Semantic Algebras: Higher Order Structures
– Axel
- 1983
|
|
1
|
Carrie Wilpolt: An Introduction to Trellis/Owl
– Schaffert, Cooper, et al.
- 1986
|
|
1
|
ia-Virginia Aponte, Alain Laville
– Weis
|