Hostname: page-component-8448b6f56d-qsmjn Total loading time: 0 Render date: 2024-04-19T12:18:52.578Z Has data issue: false hasContentIssue false

Sound and complete axiomatisations of call-by-value control operators

Published online by Cambridge University Press:  04 March 2009

Martin Hofmann
Affiliation:
Department of Computer Science, University of Edinburgh, King's Buildings, Mayfield Rd., Edinburgh EH9 3JZ, Scotland

Abstract

We formulate a typed version of call-by-value λ-calculus containing variants of Felleisen's control operators A and C that provide explicit access to continuations and logically extend the propositions-as-types correspondence to classical propositional logic. We give an equational theory for this calculus, which is shown to be sound and complete with respect to a class of categorical models based on continuation-passing-style semantics.

Type
Research Article
Copyright
Copyright © Cambridge University Press 1995

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Agapiev, B. and Moggi, E. (1991) Declarative Continuations and Monads. (Unpublished draft)Google Scholar
Appel, A. W. (1992) Compiling with Continuations, Cambridge University Press.Google Scholar
Barr, M. and Wells, C. (1990) Category Theory for Computing Science, International Series in Computer Science, Prentice Hall.Google Scholar
Felleisen, M.et al. (1987) A Syntactic Theory of Sequential Control. Theoretical Computer Science 52 205237.CrossRefGoogle Scholar
Filinski, A. (1989) Declarative Comtinuations and Categorical Duality, Master's thesis, Computer Science Department, University of Copenhagen, DIKU Report 89/11.Google Scholar
Griffin, T. (1990) A formulae-as-types notion of control. In: Proc. 17th ACM Symposium on Principles of Programming Languages 4758.CrossRefGoogle Scholar
Jacobs, B. (1991) Categorical Type Theory, PhD thesis, University of Nijmegen.Google Scholar
Krivine, J.-L. (Unpublished note) Classical Logic, Storage Operators, and Second Order Lambda-Calculus.Google Scholar
Lambek, J. and Scott, P. (1985) Introduction to Higher-Order Categorical Logic, Cambridge University Press.Google Scholar
Moggi, E. (1991) Notions of computation and monads. Information and Computation 93 5592.CrossRefGoogle Scholar
Murthy, C. (1991) An evaluation semantics for classical proofs. In: Proceedings of the sixth IEEE Symposium on Logic in Computer Science (LICS).Google Scholar
Plotkin, G. (1975) Call-by-name, call-by-value and the λ-calculus. Theoretical Computer Science 1 125159.CrossRefGoogle Scholar
Rees, J. and Clinger, W. (1986) Revised3 report on the algorithmic language Scheme. SIGPLAN Notices 21 (12) 3779.CrossRefGoogle Scholar
Reynolds, J. C. (1972) Definitional interpreters for higher-order programming languages. In: Proceedings of the 25th ACM National Conference 717740.CrossRefGoogle Scholar
Sabry, A. and Felleisen, M. (1993) Reasoning about programs in continuation-passing style. Lisp and Symbolic Computation 6 (3/4) 287358.CrossRefGoogle Scholar
Talcott, C. (1992) A theory for program and data specification. Theoretical Computer Science 10 (1).Google Scholar