Call-by-Value, call-by-name and the logic of values

  • Robert F. Stärk
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1258)


We introduce two logics for partiality, a call-by-value logic and a call-by-name logic. Both logics are variants of the logic of partial terms, an extension of the first-order predicate calculus by a definedness predicate. In our logics, however, quantifiers may only be instantiated to value terms and not to arbitrary, defined terms as in the logic of partial terms. We show that the call-by-value logic is computationally adequate for call-by-value evaluation, whereas the call-by-name logic has the same property for call-by-name evaluation. In order to relate the call-by-value logic to partial combinatory logic, we introduce a new lambda abstraction for terms of partial combinatory logic which has better properties than the one used previously.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Z. M. Ariola, M. Felleisen, J. Maraist, M. Odersky, and P. Wadler. A call-by-need lambda calculus. In Proceedings of the ACM Symposium on Principles of Programming Languages (POPL '95), pages 233–246. ACM Press, 1995.Google Scholar
  2. 2.
    M. J. Beeson. Foundations of Constructive Mathematics. Springer-Verlag, 1985.Google Scholar
  3. 3.
    W. Clinger and J. A. Rees. The revised4 report on the algorithmic language Scheme. ACM LISP Pointers, 4(3), 1991.Google Scholar
  4. 4.
    S. Feferman. A language and axioms for explicit mathematics. In J. N. Crossley, editor, Algebra and Logic, pages 87–139, Berlin, 1975. Springer-Verlag, Lecture Notes in Mathematics 450.Google Scholar
  5. 5.
    S. Feferman. Polymorphic typed lambda-calculi in a type-free axiomatic framework. In W. Sieg, editor, Logic and Computation, volume 106 of Contemporary Mathematics, pages 101–136, Providence, Rhode Island, 1990. American Mathematical Society.Google Scholar
  6. 6.
    S. Feferman. Definedness. Technical report, Department of Mathematics, Stanford University, 1995.Google Scholar
  7. 7.
    P. Hudlak, S. Peyton Jones, and P. Wadler. Report on the programming language Haskell, a non-strict purely functional language. ACM SIGPLAN Notices, 27(5), 1992.Google Scholar
  8. 8.
    R. Milner, M. Tofte, and R. Harper. The definition of Standard ML. The MIT Press, 1990.Google Scholar
  9. 9.
    G. Plotkin. Call-by-name, call-by-value and the λ-calculus. Theoretical Computer Science, 1:125–159, 1975.Google Scholar
  10. 10.
    A. Sabry and P. Wadler. A reflection on call-by-value. In Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '96), pages 13–24, Philadelphia, Pennsylvania, 1996. ACM Press.Google Scholar
  11. 11.
    R. F. Stärk. Why the constant undefined? Logics of partial and undefined terms for strict and non-strict functional programming languages. Technical Report 96-11, Institute of Informatics, University of Fribourg, Switzerland, 1996.Google Scholar
  12. 12.
    T. Strahm. Partial applicative theories and explicit substitutions. J. of Logic and Computation, 6(1):55–77, 1996.Google Scholar
  13. 13.
    A. S. Troelstra and D. van Dalen. Constructivism in Mathematics: an Introduction. North-Hollland, Amsterdam, 1988.Google Scholar
  14. 14.
    D. A. Turner. An overview of Miranda. ACM SIGPLAN Notices, 21(12):158–166, 1986.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Robert F. Stärk
    • 1
  1. 1.Institute of InformaticsUniversity of FribourgFribourgSwitzerland

Personalised recommendations