skip to main content
10.1145/91556.91679acmconferencesArticle/Chapter ViewAbstractPublication PageslfpConference Proceedingsconference-collections
Article
Free Access

Incremental reduction in the lambda calculus

Authors Info & Claims
Published:01 May 1990Publication History

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 λ-calculus and describe an incremental reduction algorithm, Λinc. We show that Λ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 λ-reduction strategy that may prove useful in a non-incremental setting as well.

Incremental λ-reduction can be used to advantage in any setting where an algorithm is specified in a functional or applicative manner.

References

  1. ACCL90.M. Abadi, L. Cardelli, P.-L. Curien, and J.-J. Levy. Explicit substitutions. In Proc. Seventeenth A CM Symposium on Principles o.f Progrumming Languages, San Francisco, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. ACR+87.B. Alpern, A. Carle, B. Rosen, P. Sweeney, and K. Zadeck. Incremental evaluation of attributed graphs. Technical Report RC 13205, IBM Thomas J. Watson Research Center, Yorktown Heights, New York 10598, October 1987.Google ScholarGoogle Scholar
  3. Bar84.H.P. Barendregt. The ~ambda Calculus, volume 103 of Studies in Logic and the Founda. tions of Mathematics. lXIorth-Holland, Amsterdam, 1984.Google ScholarGoogle Scholar
  4. Ben82.S.A. Bengelloun. Aspects of Incremental Computing. PhD thesis, Yale University, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. BKKS87.H.P. Barendregt, J.R. Kennaway, J.W. Klop, and M.R. Sleep. Needed reduction and spine strategies for the lambda calculus. Information and Computation, 75:191-231, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. BPR85.A.M. Berman, M. C. Paull, and B. G. Ryder. Proving relative lower bounds for incremental algorithms. Technical Report DCS-TR-154, Department of Computer Science, Rutgers University, New Brunswick, New Jersey 08903, 1985.Google ScholarGoogle Scholar
  7. BvEG+87.H.P. Barendregt, M.C.J.D. van Eekelen, J.R.W. Glauert, J.R. Kennaway, M.J. Plasmeijer, and M.R. Sleep. Term graph rewriting. In Proc. PARLE Conference, Vol. H: Parallel Languages, pages 141-158, Eindhoven, The Netherlands, 1987. Springer-Verlag. Lecture Notes in Computer Science 259. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. CCM87.G. Cousineau, P.-L. Curien, and M. Mauny. The categorical abstract machine. Science of Computer Programming, 8:173-202, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Cur86a.P.-L. Curien. Categorical combinators. Information and Control, 69:188-254, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Cur86b.P.-L. Curien. Categorical Combinators, Sequential Algorithms, and Functional Programming. Research Notes in Theoretical Computer Science. Pitman, London, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. dB72.N.G. de Bruijn. Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the church-rosser theorem. Proc. of the Koninklijke 1Vederlandse Akademie van Wetenschappen, 75(5):381-392, 1972.Google ScholarGoogle Scholar
  12. DRT81.A. Demers, T. Reps, and T. Teitelbaum. Incremental evaluation for attribute grammars with application to syntax-directed editors. Proc. Eighth A CM Syrup. on Principles of C Programruing Languages, pages 105-116, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Ear76.J. Earley. High level iterators and a method for automatically designing data structure representation. Journal o/ Computer Languages, 1:321-342, 1976.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Fie90a.John Field. Incremental Reduction and its Applications. PhD thesis, Cornell University, 1990. (Forthcoming).Google ScholarGoogle Scholar
  15. Fie90b.John Field. On laziness and optimality in lambda interpreters: Tools for specification and analysis. In Proc. Seventeenth A CM Symposium on Principles of Programming Languages, San Francisco, January 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. FW87.Jon FairbaJrn and Stuart Wray. Tim: A simpie, lazy abstract machine to execute supercombinators. In Proc. Conference on Functional Programming Languages and Computer Architecture, pages 34-45, Portland, 1987. Springer- Verlag. Lecture Notes in Computer Science 274. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. HM76.P. Henderson and J.H. Morris. A lazy evalutor. In Proc. Third A CM Symposium on Principles of Programming Languages, pages 95-103, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. JSS89.Neil D. Jones, Peter Sestoft, and Harald SZndergaard. Mix: A self-applicable partial evaluator for experiments in compiler generation. Lisp and Symbolic Computation, 2, 1989.Google ScholarGoogle Scholar
  19. Klo80.J.W. Klop. Coml~inator!l Reduction Systems, volume 127 of Mathematical Centre Tracts. Mathematical Centre, Kruislaan 413, Amsterdam 1098SJ, The Netherlands, 1980.Google ScholarGoogle Scholar
  20. Lév78.Jean-Jacques L~vy. Rdductions correctes et optimales dans le lambda-calcul. PhD thesis, Universit6 de Paris VII, 1978. (Thbse d'Et~t).Google ScholarGoogle Scholar
  21. Lév80.Jean-Jacques L6vy. Optimal reductions in the lambda-calculus. In J.P. Seldin and J.R. Hindley, editors, To H.B. Curry: Essays on Combi. natory Logic, Lambda Calculus, and Formalism. Academic Press, London, 1980.Google ScholarGoogle Scholar
  22. O’D77.Michael J. O'Donnell. Computing in Systems Described by Equations. Springer-Verlag, 1977. Lecture Notes in Computer Science 58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Pey87.S.L. Peyton Jones. The Implementation o! Functional Programming Languages. Prentice Hall International, Englewood Cliffs, New Jersey, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. PK82.R. Paige and S. Koenig. Finite differencing of computable expressions. Transactions on Programming Languages and Systems, 4(3):402- 454, July 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. PT89.W. Pugh and T. Teitelbaum. Incremental computation by function caching. In Proc. Sixteenth A CM Sgtmp. on Principles of Programming Languages, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Rep82.T. Reps. Optimal-time incremental semantic analysis for syntax-directed editors. Proc. Ninth A CM Syrup. on Principles o! Programming Languages, pages 169-176, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Sun90.R.S. Sundaresh. Technical report. Yale University, 1990.Google ScholarGoogle Scholar
  28. Wad71.C.P. Wadsworth. Semantics and Pragmatics of the ~ambda-Calculus. PhD thesis, Oxford University, 1971.Google ScholarGoogle Scholar
  29. YS87.D. Yellin and R. Strom. ~INC~: A language for incremental computations. Technical Report RC 13327, IBM Thomas J. Watson Research Center, Yorktown Heights, New York 1(}598, December 1987.Google ScholarGoogle Scholar

Index Terms

  1. Incremental reduction in the lambda calculus

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            LFP '90: Proceedings of the 1990 ACM conference on LISP and functional programming
            May 1990
            348 pages
            ISBN:089791368X
            DOI:10.1145/91556

            Copyright © 1990 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 1 May 1990

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

            Acceptance Rates

            Overall Acceptance Rate30of109submissions,28%

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader