Incremental reduction in the lambda calculus

  • Authors:
  • John Field;Tim Teitelbaum

  • Affiliations:
  • Department of Computer Science, Cornell University, Upson Hall, Ithaca, NY;Department of Computer Science, Cornell University, Upson Hall, Ithaca, NY

  • Venue:
  • LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
  • Year:
  • 1990

Quantified Score

Hi-index 0.01

Visualization

Abstract

An incremental algorithm is one that takes advantage of the fact that the function it computes is to be evaluated repeatedly on inputs that differ only slightly from one another, avoiding unnecessary duplication of common computations.We define here a new notion of incrementality for reduction in the untyped &lgr;-calculus and describe an incremental reduction algorithm, &Lgr;inc. We show that &Lgr;inc has the desirable property of performing non-overlapping reductions on related terms, yet is simple enough to allow a practical implementation. The algorithm is based on a novel &lgr;-reduction strategy that may prove useful in a non-incremental setting as well.Incremental &lgr;-reduction can be used to advantage in any setting where an algorithm is specified in a functional or applicative manner.