fully lazy lambda lifting

Computing Dictionary

fully lazy lambda lifting definition


John Hughes's optimisation of lambda lifting to give full laziness. Maximal free expressions are shared to minimise the amount of recalculation. Each inner sub-expression is replaced by a function of its maximal free expressions (expressions not containing any bound variable) applied to those expressions. E.g.
f = \ x . (\ y . (+) (sqrt x) y)
((+) (sqrt x)) is a maximal free expression in (\ y . (+) (sqrt x) y) so this inner abstraction is replaced with
(\ g . \ y . g y) ((+) (sqrt x))
Now, if a partial application of f is shared, the result of evaluating (sqrt x) will also be shared rather than re-evaluated on each application of f. As Chin notes, the same benefit could be achieved without introducing the new higher-order function, g, if we just extracted out (sqrt x).
This is similar to the code motion optimisation in procedural languages where constant expressions are moved outside a loop or procedure.
(1994-12-01)
The Free On-line Dictionary of Computing, © Denis Howe 2010 http://foldoc.org
Cite This Source
Explore Dictionary.com
Previous Definition: fully grown
More from Thesaurus.com
Synonyms and Antonyms for fully lazy lambda lifting
More from Reference.com
Search for articles containing fully lazy lambda lifting
Dictionary.com Word FAQs

Dictionary.com presents 366 FAQs, incorporating some of the frequently asked questions from the past with newer queries.

Copyright © 2014 Dictionary.com, LLC. All rights reserved.
  • Please Login or Sign Up to use the Recent Searches feature