What is an Efficient Implementation of the λ-calculus ?

We propose to measure the efficiency of any implementation of the λcalculus as a function of a new parameter ν, that is itself a function of any λ-expression. Complexity is expressed here as a function of ν just as runtime is expressed as a function of the input size n in ordinary analysis of algorithms. This enables implementations to be compared for worst case efficiency. We argue that any implementation must have complexity Ω(ν), i.e. a linear lower bound. Furthermore, we show that implementations based upon Turner Combinators or Hughes Super-combinators have complexities 2, i.e. an exponential lower bound. It is open whether any implementation of polynomial complexity, ν, exists, although some implementations have been implicitly claimed to have this complexity.

[1]  K. N. Dollman,et al.  - 1 , 1743 .

[2]  M. Schönfinkel Über die Bausteine der mathematischen Logik , 1924 .

[3]  A. Church A Set of Postulates for the Foundation of Logic , 1932 .

[4]  R. J. M. Hughes,et al.  Design and Implementation of Programming Languages , 1977, Lecture Notes in Computer Science.

[5]  D. A. Turner Another Algorithm for Bracket Abstraction , 1979, J. Symb. Log..

[6]  Arnold Schönhage Storage Modification Machines , 1980, SIAM J. Comput..

[7]  Jan Willem Klop,et al.  Combinatory reduction systems , 1980 .

[8]  R. J. M. Hughes,et al.  Super-combinators a new implementation method for applicative languages , 1982, LFP '82.

[9]  John Staples,et al.  Two-level expression representation for faster evaluation , 1982, Graph-Grammars and Their Application to Computer Science.

[10]  F. Warren Burton A Linear Space Translation of Functional Programs to Turner Combinators , 1982, Inf. Process. Lett..

[11]  Manfred Nagl,et al.  Graph-Grammars and Their Application to Computer Science , 1982, Lecture Notes in Computer Science.

[12]  J. Barkley Rosser,et al.  Highlights of the History of the Lambda-Calculus , 1982, Annals of the History of Computing.

[13]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[14]  Kohei Noshita Translation of Turner Combinators in O(n log n) Space , 1985, Inf. Process. Lett..

[15]  Richard Kennaway,et al.  Variable Abstraction in O(n log n) Space , 1987, Inf. Process. Lett..

[16]  Arnold Schönhage A nonlinear lower bound for random-access machines under logarithmic cost , 1988, JACM.

[17]  György E. Révész Lambda-calculus, combinators, and functional programming , 1988, Cambridge tracts in theoretical computer science.

[18]  John Lamping,et al.  An algorithm for optimal lambda calculus reduction , 1989, POPL '90.

[19]  John Field,et al.  On laziness and optimality in lambda interpreters: tools for specification and analysis , 1989, POPL '90.