Lambda Calculi and Linear Speedups
Book chapter, 2002

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) V → M[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

David Sands

Chalmers, Department of Computing Science

Jörgen Gustavsson

Chalmers, Department of Computing Science, Functional Programming

Andrew Keith Moran

Chalmers, Department of Computing Science

The Essence of Computation: Complexity, Analysis, Transformation. Essays Dedicated to Neil D. Jones

Subject Categories

Computer and Information Science

DOI

10.1007/3-540-36377-7_4

ISBN

978-3-540-00326-7

More information

Latest update

12/13/2018