Abstraction problems in combinatory logic: A compositive approach (Q1262300)

From MaRDI portal
scientific article
Language Label Description Also known as
English
Abstraction problems in combinatory logic: A compositive approach
scientific article

    Statements

    Abstraction problems in combinatory logic: A compositive approach (English)
    0 references
    0 references
    1989
    0 references
    This paper analyses the problem of translating \(\lambda\)-calculus terms into combinatory logic terms. Abtraction algorithms constitute the central issue of such translation since they allow removing bound variables from \(\lambda\)-terms by means of introducing some constants (combinators) belonging to a given basis. Three versions of a new abstraction algorithm are presented, using different abstraction techniques (one-sweep, multi-sweep, supercombinators). They derive from the definition of abstraction given by Curry in 1930 and have some interesting features: (a) they employ a potentially infinite basis of combinators, each of which depends on at most two parameters; (b) they introduce a number of basic combinators which is proportional to the size of the expression to be abstracted and invariant for the considered abstraction techniques; (c) they give the result in the form \(RIM_ 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 constant terms appearing in the expression subject to the abstraction process. The algorithms are compared with existing ones and it is shown that no other algorithm present in the literature shares the cited features. The compactness of the resulting code and its compositive form, and the direct implementability of the basic combinators make the presented algorithms suitable for application in the implementation of functional programming languages.
    0 references
    0 references
    0 references
    0 references
    0 references
    \(\lambda \) -calculus
    0 references
    combinatory logic
    0 references
    Abtraction algorithms
    0 references
    supercombinators
    0 references
    implementation of functional programming languages
    0 references
    0 references