• Corpus ID: 118097460

Declarative Continuations and Categorical Duality

@inproceedings{Filinski1989DeclarativeCA,
  title={Declarative Continuations and Categorical Duality},
  author={Andrzej Filinski},
  year={1989}
}
This thesis presents a formalism for reasoning about continuations in a categorical setting. It points out how values and continuations can 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 implications of this make up the spine of the presentation. A symmetrical… 
A tutorial on computational classical logic and the sequent calculus
TLDR
A model of computation that heavily emphasizes the concept of duality and the interaction between opposites–production interacts with consumption is presented, and two different methods of focusing are compared and contrast and illustrate how they are two means to the same end.
The logical basis of evaluation order and pattern-matching
TLDR
This thesis aims to give a fresh take on the proofs-as-programs analogy, and obtains a programming language with built-in support for pattern-matching, in which evaluation order is explicitly reflected at the level of types—and hence can be controlled locally, rather than being an ad hoc, global policy decision.
On the unity of duality
What is an abstract machine
TLDR
A categorical abstract machine capable of normal-order reduction of lambda calculus expressions in weak head-normal form is specified, and an implementation of (weak) lambda-calculus reduction by the categorical abstention machine is proved coherent with the syntactic reduction rule (B) of the calculus.
Control categories and duality: on the categorical semantics of the lambda-mu calculus
  • P. Selinger
  • Computer Science
    Mathematical Structures in Computer Science
  • 2001
TLDR
It is proved, via a categorical structure theorem, that the categorical semantics is equivalent to a CPS semantics in the style of Hofmann and Streicher, and that the call-by-name λμ-calculus forms an internal language for the dual co-control categories.
Linear lambda calculus with non-linear first-class continuations
TLDR
This paper formalizes the lambda calculus with first-class continuations in the framework of linear logic, which is a logical system sensitive to duplicability and removability, proposed by Jean-Yves Girard.
ML Polymorphism of Linear Lambda Calculus with First-class Continuations
TLDR
An ML polymorphic type system for the linear lambda calculus with first-class continuations is proposed and a type inference algorithm of the type system is designed that allows both values and continuations to be duplicated and erased.
A formulae-as-type notion of control
TLDR
It is proved that all evaluations of typed terms in Idealized Scheme are finite, and the existence of computationally interesting “classical programs” is illustrated by the definition of conjunctively, disjunctive, and existential types using standard classical definitions.
Proposal : The logical basis of evaluation order
Most type systems are agnostic regarding the evaluation strategy for the underlying languages, with the value restriction for ML which is absent in Haskell as a notable exception. As type systems
A Symmetric Lambda-Calculus Corresponding to the Negation-Free Bilateral Natural Deduction
TLDR
This paper proposes a simple symmetric lambda-calculus corresponding to the negation-free natural deduction based bilateralism in proof-theoretic semantics and shows that mutual transformations between expressions and continuations are definable in the calculus to justify the duality of functions.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 45 REFERENCES
Declarative Continuations: an Investigation of Duality in Programming Language Semantics
TLDR
A symmetric extension of the typed λ-calculus is introduced, where values and continuations play dual roles, permitting mirror-image syntax for dual categorical concepts like products and coproducts.
A Functional Abstraction of Typed Contexts
TLDR
Making functional control abstractions first-class offers a new area in programming which this paper explores, and an extension towards gaining control over embedding contexts is extended.
Constructing Call-by-Value Continuation Semantics
TLDR
This paper defines transformations and shows that the transformations preserve the predicates used to construct continuation semantics, starting from a direct semantics of a language with procedures called by value.
A Typed Lambda Calculus with Categorical Type Constructors
  • T. Hagino
  • Mathematics
    Category Theory and Computer Science
  • 1987
TLDR
A typed lambda calculus with categorical type constructors with uniform category theoretic mechanism to declare new types is introduced and it is shown that they are strongly normalizing even though it has infinite things like infinite lists.
A Semantics of Multiple Inheritance
TLDR
Programming with taxonomically organized data is often called objectoriented programming, and has been advocated as an effective way of structuring programming environments, data bases, and large systems in general.
Shallow binding in Lisp 1.5
TLDR
The concept of rerooting is shown to combine the concept of shallow binding in Lisp with Dijkstra's display for Algol and hence is a general model for shallow binding.
Can programming be liberated from the von Neumann style
TLDR
An alternative functional style of programming is founded on the use of combining forms for creating programs that deal with structured data, are often nonrepetitive and nonrecursive, are hierarchically constructed, do not name their arguments, and do not require the complex machinery of procedure declarations to become generally applicable.
Computational lambda-calculus and monads
  • E. Moggi
  • Computer Science
    [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science
  • 1989
TLDR
The author gives a calculus based on a categorical semantics for computations, which provides a correct basis for proving equivalence of programs, independent from any specific computational model.
...
1
2
3
4
5
...