Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Lambda Calculi and Linear Speedups

  • Chapter
  • First Online:
The Essence of Computation

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

Abstract

The equational theories at the core of most functional programming are variations on the standard lambda calculus. The best known of these is the call-by-value lambda calculus whose core is the value-beta computation rule (λχ.M) VM[V/χ] where V is restricted to be a value rather than an arbitrary term. This paper investigates the transformational power of this core theory of functional programming. The main result is that the equational theory of the call-by-value lambda calculus cannot speed up (or slow down) programs by more than a constant factor. The corresponding result also holds for call-by-need but we show that it does not hold for call-byname: there are programs for which a single beta reduction can change the program’s asymptotic complexity.

Author’s current address: Galois Connections, Oregon. moran@galcon.com

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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.

Similar content being viewed by others

References

  1. Z. M. Ariola and S. Blom, Cyclic lambda calculi, Proc. TACS’97, LNCS, vol. 1281, Springer-Verlag, February 1997, pp. 77–106.

    Google Scholar 

  2. M. Abadi and L. Cardelli, A theory of objects, Springer-Verlag, New York, 1996.

    MATH  Google Scholar 

  3. Z. Ariola, M. Felleisen, J. Maraist, M. Odersky, and P. Wadler, A call-byneed lambda calculus, Proc. POPL’95, the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM Press, January 1995, pp. 233–246.

    Google Scholar 

  4. Lars Andersen and Carsten Gomard, Speedup analysis in partial evaluation: Preliminary results, Proceedings of the 1992 ACM Workshop on Partial Evaluation and Semantics-Based Program Manipulation (San Francisco, U.S.A.), Association for Computing Machinery, June 1992, pp. 1–7.

    Google Scholar 

  5. Gerard Boudol and Laurent Kott, Recursion induction principle revisited, Theoretical Computer Science 22 (1983), 135–173.

    Article  MATH  MathSciNet  Google Scholar 

  6. Matthias Felleisen and Robert Hieb, A revised report on the syntactic theories of sequential control and state, Theoretical Computer Science 103 (1992), no. 2, 235–271.

    Article  MATH  MathSciNet  Google Scholar 

  7. Neil D. Jones, Carsten K. Gomard, and Peter Sestoft, Partial evaluation and automatic program generation, Prentice Hall International, International Series in Computer Science, June 1993, ISBN number 0-13-020249-5 (pbk).

    Google Scholar 

  8. Neil D. Jones, Partial evaluation, self-application and types, Automata, Languages and Programming, LNCS, vol. 443, Springer-Verlag, 1990, pp. 639–659.

    Chapter  Google Scholar 

  9. N. D. Jones, Constant time factors do matter, STOC’ 93. Symposium on Theory of Computing (Steven Homer, ed.), ACM Press, 1993, pp. 602–611.

    Google Scholar 

  10. Neil D. Jones, What not to do when writing an interpreter for specialisation, Partial Evaluation (Olivier Danvy, Robert Glück, and Peter Thiemann, eds.), Lecture Notes in Computer Science, vol. 1110, Springer-Verlag, 1996, pp. 216–237.

    Google Scholar 

  11. P. J. Landin, The next 700 programming languages, Communications of the ACM 9 (1966), no. 3, 157–164.

    Article  MATH  Google Scholar 

  12. R. Milner, Fully abstract models of the typed ë-calculus, Theoretical Computer Science 4 (1977), 1–22.

    Article  MATH  MathSciNet  Google Scholar 

  13. Andrew Moran and David Sands, Improvement in a lazy context: An operational theory for call-by-need, Proc. POPL’99, ACM Press, January 1999, pp. 43–56.

    Google Scholar 

  14. G. Plotkin, Call-by-name, call-by-value and the ë-calculus, Theoretical Computer Science 1 (1976), no. 1, 125–159.

    MathSciNet  Google Scholar 

  15. Eva Rose, Linear-time hierarchies for a functional language machine model, Science of Computer Programming 32 (1998), no. 1–3, 109–143, 6th European Symposium on Programming (Linköping, 1996).

    Article  MATH  MathSciNet  Google Scholar 

  16. D. Sands, Proving the correctness of recursion-based automatic program transformations, Theoretical Computer Science 167 (1996), no. A.

    Google Scholar 

  17. Hong Zhu, How powerful are folding/unfolding transformations?, Journal of Functional Programming 4 (1994), no. 1, 89–112.

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Sands, D., Gustavsson, J., Moran, A. (2002). Lambda Calculi and Linear Speedups. In: Mogensen, T.Æ., Schmidt, D.A., Sudborough, I.H. (eds) The Essence of Computation. Lecture Notes in Computer Science, vol 2566. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36377-7_4

Download citation

  • DOI: https://doi.org/10.1007/3-540-36377-7_4

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-00326-7

  • Online ISBN: 978-3-540-36377-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics