Abstract
Call-by-push-value is a new paradigm that subsumes the call-by-name and call-by-value paradigms, in the following sense: both operational and denotational semantics for those paradigms can be seen as arising, via translations that we will provide, from similar semantics for call-by-observable.
To explain call-by-observable, we first discuss general operational ideas, especially the distinction between values and computations, using the principle that “a value is, a computation does”. Using an example program, we see that the lambda-calculus primitives can be understood as push/pop commands for an operand-stack.
We provide operational and denotational semantics for a range of computational effects and show their agreement. We hence obtain semantics for call-by-name and call-by-value, of which some are familiar, some are new and some were known but previously appeared mysterious.
supported by EPSRC research studentship no. 96308344
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
S. Abramsky, K. Honda, and G. McCusker. A fully abstract game semantics for general references. Proceedings, Thirteenth Annual IEEE Symposium on Logic in Computer Science, IEEE Computer Society Press, 1998.
S. Abramsky and G. McCusker. Call-by-value games. In M. Nielsen and W. Thomas, editors, Computer Science Logic: 11th International Workshop Proceedings, Lecture Notes in Computer Science. Springer-Verlag, 1998.
N. Benton and P. Wadler. Linear logic, monads and the lambda calculus. In Proceedings, 11 th Annual IEEE Symposium on Logic in Computer Science, pages 420–431, New Brunswick, 1996. IEEE Computer Society Press.
A. Filinski. Controlling Effects. PhD thesis, School of Computer Science, Carnegie Mellon University, Pittsburgh, Pennsylvania, 1996.
J.-Y. Girard. Linear logic. Theoretical Computer Science, 50:1–102, 1987.
J. Hatcliff and O. Danvy. Thunks and the λ-calculus. Journal of Functional Programming, 7(3):303–319, May 1997.
M. Hyland and L. Ong. On full abstraction for PCF. submitted, 1994.
S. Peyton Jones, J. Launchbury, M. Shields, and A. Tolmach. Bridging the gulf: A common intermediate language for ML and Haskell. In Proc. 25th ACM Symposium on Principles of Programming Languages, San Diego, 1998.
S. L. Peyton Jones. Implementing lazy functional languages on stock hardware: the spineless tagless G-machine. Journal of Functional Programming, 2(2):127–202, July 1992.
P. B. Levy. Categorical aspects of call-by-push-value. draft, available at http://www.dcs.qmw.ac.uk/pbl/papers.html, 1998.
M. Marz. A fully abstract model for sequential computation. draft, 1998.
A. Meyer and S. Cosmodakis. Semantical Paradigms. In Proc. Third Annual Symposium on Logic in Computer Science. Computer Society Press, 1988.
G. McCusker. Games and Full Abstraction for a Functional Metalanguage with Recursive Types. PhD thesis, University of London, 1996.
E. Moggi. Notions of computation and monads. Information and Computation, 93:55–92, 1991.
P. W. O’Hearn. Opaque types in algol-like languages. manuscript, 1993.
G. D. Plotkin. Call-by-name, call-by-value and the λ-calculus. Theoretical Computer Science, 1(1):125–159, 1976.
G. D. Plotkin. LCF as a programming language. Theoretical Computer Science, 5, 1977.
G. D. Plotkin. Lectures on predomains and partial functions. Course notes, Center for the Study of Language and Information, Stanford, 1985.
A. J. Power and E. P. Robinson. Premonoidal categories and notions of computation. Math. Struct. in Comp. Sci., 7(5):453–468, October 1997.
J. Reynolds. Where theory and practice meet: POPL past and future. Invited Lecture, 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California, January 19—21, 1998.
M. Shields and S. Peyton Jones. Bridging the gulf better. Draft, 1998.
Th. Streicher and B. Reus. Continuation semantics, abstract machines and control operators. submitted to Journal of Functional Programming, 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Levy, P.B. (1999). Call-by-Push-Value: A Subsuming Paradigm. In: Girard, JY. (eds) Typed Lambda Calculi and Applications. TLCA 1999. Lecture Notes in Computer Science, vol 1581. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48959-2_17
Download citation
DOI: https://doi.org/10.1007/3-540-48959-2_17
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65763-7
Online ISBN: 978-3-540-48959-7
eBook Packages: Springer Book Archive