A new translation algorithm from lambda calculus into combinatory logic

  • Sabine Broda
  • Luís Damas
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 990)


Systems of lambda calculus are of importance for most knowledge representation theories and in particular for several systems for Natural Language Processing. During the implementation of lambda systems several problems arise that are directly related to the presence of bound variables. These problems can be avoided using translations from lambda calculus into combinatory systems, which give origin to extremely simple reduction machines. In this article we present and prove the correctness of a translation algorithm, that, when compared with other systems, has quite good properties in terms of memory space as well as in terms of length of evaluations.


Combinatory Logic Lambda Calculus Knowledge Representation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    S. Abdali. An abstraction algorithm for combinatory logic. Journal of Symbolic Logic, 41:222–224, 1976.Google Scholar
  2. 2.
    H. Barendregt. Functional programming and lambda calculus. Handbook of Theoretical Computer Science, pages 322–63, 1990.Google Scholar
  3. 3.
    L. Cardelli. Semantics of multiple inheritance. In Kahn, MacQueen, and Plotkin, editors, Semantics of Data Types, volume 173 of LNCS. Springer Verlag, 1984.Google Scholar
  4. 4.
    H. Curry and R. Feys. Combinatory Logic Vol. 1. North-Holland, Amsterdam, 1958.Google Scholar
  5. 5.
    M. Dalrymple, S. M. Shieber, and F. C. N. Pereira. Ellipsis and higher-order unification. Linguistics and Philosophy, 14:399–452, 1991.CrossRefGoogle Scholar
  6. 6.
    D. Dowty, R. Wall, and S. Peters. Introduction to Montague Semantics. D. Reidel Publishing Company, Dordrecht, 1985.Google Scholar
  7. 7.
    J. Hugues. Supercombinators, a new implementation method for applicative languages. Proc. ACM Symp. on Lisp and Functional Programming, pages 1–10, 1988.Google Scholar
  8. 8.
    J. P. S. J. Roger Hindley. Introduction to Combinators and λ-Calculus. Cambridge University Press, 1986.Google Scholar
  9. 9.
    J. R. Kennaway and M. R. Sleep. Counting director strings. University of East Anglia, Norwich, 1984.Google Scholar
  10. 10.
    J. Mulder. Complexity of combinatory code. Preprint 389, University Utrecht, Department of Mathematics, August 1985.Google Scholar
  11. 11.
    F. Pereira. Categorial semantics and scoping. Computational Linguistics, 16(1), 1990.Google Scholar
  12. 12.
    F. Pereira and S. Shieber. Prolog and natural-language analysis. CSLI Lecture Notes, 10, 1987.Google Scholar
  13. 13.
    S. Peyton Jones. The implementation of functional programming languages. Prentice-Hall, 1987.Google Scholar
  14. 14.
    M. Schönfinkel. Über die Bausteine der mathematischen Logik. Mathematische Annalen, 92:305–316, 1924.CrossRefGoogle Scholar
  15. 15.
    R. Statman. On translating lambda terms into combinators; the basis problem. pages 378–382. IEEE, 1986. Proceedings of the LICS'86.Google Scholar
  16. 16.
    D. Turner. Another algorithm for bracket abstraction. Journal of Symbolic Logic,44:267–270, 1979.Google Scholar
  17. 17.
    D. Turner. A new implementation technique for applicative languages. Software-Practice and Experience, 9:31–49, 1979.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Sabine Broda
    • 1
  • Luís Damas
    • 1
  1. 1.LIACC, Universidade do PortoPortoPortugal

Personalised recommendations