Skip to main content

On the Value of Variables

  • Conference paper
Logic, Language, Information, and Computation (WoLLIC 2014)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8652))

Abstract

Call-by-value and call-by-need ł-calculi are defined using the distinguished syntactic category of values. In theoretical studies, values are variables and abstractions. In more practical works, values are usually defined simply as abstractions. This paper shows that practical values lead to a more efficient process of substitution—for both call-by-value and call-by-need—once the usual hypothesis for implementations hold (terms are closed, reduction does not go under abstraction, and substitution is done in micro steps, replacing one variable occurrence at the time). Namely, the number of substitution steps becomes linear in the number of β-redexes, while theoretical values only provide a quadratic bound.

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. Plotkin, G.D.: Call-by-name, call-by-value and the lambda-calculus. Theor. Comput. Sci. 1(2), 125–159 (1975)

    Article  MATH  MathSciNet  Google Scholar 

  2. Landin, P.J.: The Mechanical Evaluation of Expressions. The Computer Journal 6(4), 308–320 (1964)

    Article  MATH  Google Scholar 

  3. Crank, E., Felleisen, M.: Parameter-passing and the lambda calculus. In: POPL, pp. 233–244 (1991)

    Google Scholar 

  4. Ronchi Della Rocca, S., Paolini, L.: The Parametric ł-Calculus. Springer, Heidelberg (2004)

    Book  Google Scholar 

  5. Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)

    Google Scholar 

  6. Pfenning, F., Simmons, R.J.: Substructural operational semantics as ordered logic programming. In: LICS, pp. 101–110 (2009)

    Google Scholar 

  7. Accattoli, B.: An abstract factorization theorem for explicit substitutions. In: RTA, pp. 6–21 (2012)

    Google Scholar 

  8. Accattoli, B., Dal Lago, U.: On the invariance of the unitary cost model for head reduction. In: RTA, pp. 22–37 (2012)

    Google Scholar 

  9. Accattoli, B., Bonelli, E., Kesner, D., Lombardi, C.: A nonstandard standardization theorem. In: POPL, pp. 659–670 (2014)

    Google Scholar 

  10. Accattoli, B., Barenbaum, P., Mazza, D.: Distilling abstract machines. In: ICFP 2014 (accepted, 2014)

    Google Scholar 

  11. Accattoli, B., Dal Lago, U.: Beta Reduction is Invariant, Indeed. In: LICS/CSL 2014 (accepted, 2014)

    Google Scholar 

  12. Launchbury, J.: A natural semantics for lazy evaluation. In: POPL, pp. 144–154 (1993)

    Google Scholar 

  13. Ariola, Z.M., Felleisen, M.: The call-by-need lambda calculus. J. Funct. Program. 7(3), 265–301 (1997)

    Article  MATH  MathSciNet  Google Scholar 

  14. Maraist, J., Odersky, M., Wadler, P.: The call-by-need lambda calculus. J. Funct. Program. 8(3), 275–317 (1998)

    Article  MATH  MathSciNet  Google Scholar 

  15. Chang, S., Felleisen, M.: The call-by-need lambda calculus, revisited. In: Seidl, H. (ed.) Programming Languages and Systems. LNCS, vol. 7211, pp. 128–147. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  16. Danvy, O., Zerny, I.: A synthetic operational account of call-by-need evaluation. In: PPDP, pp. 97–108 (2013)

    Google Scholar 

  17. Girard, J.Y.: Linear logic. Theoretical Computer Science 50, 1–102 (1987)

    Article  MATH  MathSciNet  Google Scholar 

  18. Accattoli, B.: Proof nets and the call-by-value lambda-calculus. In: LSFA, pp. 11–26 (2012)

    Google Scholar 

  19. Dal Lago, U., Martini, S.: On constructor rewrite systems and the lambda-calculus. In: Albers, S., Marchetti-Spaccamela, A., Matias, Y., Nikoletseas, S., Thomas, W. (eds.) ICALP 2009, Part II. LNCS, vol. 5556, pp. 163–174. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  20. Wadsworth, C.P.: Some unusual λ-calculus numeral systems. In: Seldin, J., Hindley, J. (eds.) To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, Academic Press (1980)

    Google Scholar 

  21. Felleisen, M., Friedman, D.P.: Control operators, the SECD-machine, and the lambda-calculus. In: 3rd Working Conference on the Formal Description of Programming Concepts (August 1986)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Accattoli, B., Sacerdoti Coen, C. (2014). On the Value of Variables. In: Kohlenbach, U., Barceló, P., de Queiroz, R. (eds) Logic, Language, Information, and Computation. WoLLIC 2014. Lecture Notes in Computer Science, vol 8652. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-44145-9_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-44145-9_3

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-44144-2

  • Online ISBN: 978-3-662-44145-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics