Abstract
The problem of the translation of λ-terms into combinators (bracket abstraction) is of great importance for the implementation of functional languages. In the literature there exist a lot of algorithms concerning this topic, each of which is based on a particular choice of a combinatory basis, of its cardinality, of an abstraction technique.
The algorithm presented here originated from a modification of the definition of abstraction given by Curry in 1930, and has the following interesting properties:
-
i)
it employs a potentially infinite basis of combinators, each of which depends on at most two parameters and is, therefore, directly implementable;
-
ii)
it gives compact code, introducing a number of basic combinators which is proportional to the size of the expression to be abstracted and invariant for one and multi-sweep abstraction techniques;
-
iii)
it gives the result in the form R I M 1...M n, where R is a regular combinator expressed as a composition of basic combinators, I is the identity combinator, and M 1,...,M n are the constant terms appearing into the expression subjected to the translation process.
It comes out that a slight modification of the algorithm yields a combinatory equivalent of Hughes' supercombinators.
This research has been supported by grants of the Ministry of Public Instruction, Italy.
This work originated as the author's thesis in Mathematics (supervisor Prof. C.Böhm) by such an affiliation.
Chapter PDF
References
-H.P. Barendregt, The Lambda Calculus, its Syntax and Semantics, Studies in Logic, Vol.103, North-Holland, Amsterdam (1984).
-H.B.Curry, Grundlagen der kombinatorischen Logik, American Journal of Mathematics, Vol.52 (1930).
-H.B.Curry, Some additions to the theory of combinators, American Journal of Mathematics, Vol.54 (1932).
-H.B.Curry, Apparent variables from the standpoint of Combinatory Logic, Annals of Mathematics, Vol.34 (1933).
-H.B. Curry & R. Feys, Combinatory logic, Vol.1, North-Holland, Amsterdam (1958).
-R.J.M.Hughes, SuperCombinators: a new implementation method for Applicative Languages, Symp.on LISP and Funct.Progr.,ACM (Aug 1982).
-J.C.Mulder, Complexity of combinatory code, University of Utrecht (int.rep., 1985).
-A.Piperno, Metodi di astrazione in logica combinatoria: analisi, proposte, applicazioni, Tesi di laurea, 1986.
-R. Statman, On translating lambda terms into combinators: the basis problem, LICS, Boston, 1986.
-D.A.Turner, Another algorithm for bracket abstraction, The Journal of Symbolic Logic, Vol.44 n.2 (1979).
-D.A.Turner, A new implementation technique for applicative languages, Software Practice and Experience, n.9 (1979).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Piperno, A. (1987). A compositive abstraction algorithm for combinatory logic. In: Ehrig, H., Kowalski, R., Levi, G., Montanari, U. (eds) TAPSOFT '87. TAPSOFT 1987. Lecture Notes in Computer Science, vol 250. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014971
Download citation
DOI: https://doi.org/10.1007/BFb0014971
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-17611-4
Online ISBN: 978-3-540-47717-4
eBook Packages: Springer Book Archive