Skip to main content

Call-by-Push-Value: A Subsuming Paradigm

  • Conference paper
  • First Online:
Book cover Typed Lambda Calculi and Applications (TLCA 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1581))

Included in the following conference series:

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

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. A. Filinski. Controlling Effects. PhD thesis, School of Computer Science, Carnegie Mellon University, Pittsburgh, Pennsylvania, 1996.

    Google Scholar 

  5. J.-Y. Girard. Linear logic. Theoretical Computer Science, 50:1–102, 1987.

    Google Scholar 

  6. J. Hatcliff and O. Danvy. Thunks and the λ-calculus. Journal of Functional Programming, 7(3):303–319, May 1997.

    Article  MATH  MathSciNet  Google Scholar 

  7. M. Hyland and L. Ong. On full abstraction for PCF. submitted, 1994.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

    Article  MATH  Google Scholar 

  10. P. B. Levy. Categorical aspects of call-by-push-value. draft, available at http://www.dcs.qmw.ac.uk/pbl/papers.html, 1998.

  11. M. Marz. A fully abstract model for sequential computation. draft, 1998.

    Google Scholar 

  12. A. Meyer and S. Cosmodakis. Semantical Paradigms. In Proc. Third Annual Symposium on Logic in Computer Science. Computer Society Press, 1988.

    Google Scholar 

  13. G. McCusker. Games and Full Abstraction for a Functional Metalanguage with Recursive Types. PhD thesis, University of London, 1996.

    Google Scholar 

  14. E. Moggi. Notions of computation and monads. Information and Computation, 93:55–92, 1991.

    Article  MATH  MathSciNet  Google Scholar 

  15. P. W. O’Hearn. Opaque types in algol-like languages. manuscript, 1993.

    Google Scholar 

  16. G. D. Plotkin. Call-by-name, call-by-value and the λ-calculus. Theoretical Computer Science, 1(1):125–159, 1976.

    MathSciNet  Google Scholar 

  17. G. D. Plotkin. LCF as a programming language. Theoretical Computer Science, 5, 1977.

    Google Scholar 

  18. G. D. Plotkin. Lectures on predomains and partial functions. Course notes, Center for the Study of Language and Information, Stanford, 1985.

    Google Scholar 

  19. A. J. Power and E. P. Robinson. Premonoidal categories and notions of computation. Math. Struct. in Comp. Sci., 7(5):453–468, October 1997.

    Article  MATH  MathSciNet  Google Scholar 

  20. 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.

    Google Scholar 

  21. M. Shields and S. Peyton Jones. Bridging the gulf better. Draft, 1998.

    Google Scholar 

  22. Th. Streicher and B. Reus. Continuation semantics, abstract machines and control operators. submitted to Journal of Functional Programming, 1996.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics