Variable abstraction in O(n log n) space (Q1090671)

From MaRDI portal

!

This is the item page for this Wikibase entity, intended for internal use and editing purposes. Please use the normal view instead:

scientific article; zbMATH DE number 4008364
Language Label Description Also known as
default for all languages
No label defined
    English
    Variable abstraction in O(n log n) space
    scientific article; zbMATH DE number 4008364

      Statements

      Variable abstraction in O(n log n) space (English)
      0 references
      0 references
      0 references
      1987
      0 references
      Turner's translation of lambda calculus into combinators in known to cause in the worst case a quadratic expansion in the size of an expression. This paper defines a more systematic translation into a notation of ''director strings'' closely related to Turner's combinators. The notation admits an obvious compaction by run-length encoding, which reduces the size of the translation of a lambda expression of size n to O(n log n). The time to make the translation is still quadratic in the worst case, but by combining director strings with supercombinators this can also be reduced to O(n log n). There is a simple linear translation of a director string expression into Turner's combinators, and hence into any other set of combinators sufficiently expressive to represent all lambda expressions. Up to a constant factor, evaluation of director string expressions takes the same time as the corresponding Turner combinator expressions. In practical implementations of functional languages, director strings have been found to give a significant, though not dramatic, improvement in execution speed. The work reported in this paper predates, and is independent of, \textit{K. Noshita}'s paper proving some of the same results [ibid. 20, 71-74 (1985; Zbl 0558.68028)].
      0 references
      functional programming
      0 references
      variable abstraction
      0 references
      complexity
      0 references
      lambda calculus
      0 references
      director strings
      0 references
      Turner combinator
      0 references

      Identifiers