Combinatory forms for equational programming: Instances, unification and narrowing

  • M. Bellia
  • M. Bugliesi
  • M. E. Occhiuto
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 431)


A relevant drawback of current implementations of logic programming languages is represented by the use of substitutions to keep bindings of logical variables, l-variables. Powerful compilation techniques, i.e. translation to combinatory logic, and implementation techniques such as reduction machines, have shown how to overcome this problem in the context of functional languages. The paper addresses a similar approach to equational logic programming: equations are translated into variable-free combinations and correspondingly narrowing is reformulated in terms of a set of reduction rules.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Bellia 86]
    M. Bellia and G. Levi 1986 “The Relation between Logic and Functional Programming Languages: A Survey”, J. Logic Programming,3,3, pages 217–236CrossRefGoogle Scholar
  2. [Bellia 87]
    M. Bellia “Retactions: a Functional Paradigm for Logic Programming”, TAPSOFT87, LNCS 250, Springer Verlag, pages 260–275.Google Scholar
  3. [Bellia 88]
    M. Bellia 1988 “Logic and Functional Programming by Retractions: Operational Semantics” Informatique Teorique et Applications, 22, 4, pages 395–436.Google Scholar
  4. [Beer 88]
    J. Beer 1988 “The Occur-check Problem Revised” J. Logic Programming, 5, 3, pp. 243–262.CrossRefGoogle Scholar
  5. [Bosco 87]
    P.G. Bosco, E. Giovannetti and C. Moiso “Refined Strategies for Semantic Unification” TAPSOFT87, LNCS 250, Springer Verlag, pages 276–290.Google Scholar
  6. [Colmerauer 82]
    A. Colmerauer “Prolog and Infinite Trees” Logic Programming, K.L. Clark and S-A. Tarnlund eds., Academic Press, pages 231–251.Google Scholar
  7. [Dershowitz 87]
    N. Dershowitz and D.A. Plaisted “Equational Programming” Machine Intelligence, 11, pages 21–56.Google Scholar
  8. [van Emden 84]
    M.H. van Emden and J.W. Lloyd 1984 “A Logical Reconstruction of PrologII”, J. Logic Programming,1,2, pages 143–149CrossRefGoogle Scholar
  9. [Fay 79]
    M.J. Fay “First Order Unification in an Equational Theory” 4th Workshop on Automated Deduction, Austin, Texas, pages 161–167.Google Scholar
  10. [Friedman 76]
    D.P. Friedman and D.S. Wise “Cons Should not Evaluate its Arguments” Automata, Languages and Programming, Michaelson and Milner ed., Edinburgh Univ. Press, pages 257–284.Google Scholar
  11. [Huet 80]
    G. Huet and D.C. Oppen “Equations and Rewrite Rules: A Survey” Formal Language Theory: Perspectives and Open Problems, R. Book ed., Academic Press, pages 349–405.Google Scholar
  12. [Hughes 82]
    R.J.M. Hughes “Super-Combinators: A New Implementation Method for Applicative Languages” ACM Symp. on LISP and Functional Programming, pages 1–20.Google Scholar
  13. [Hullot 80]
    J.M. Hullot “Canonical Forms and Unification” 5th Conf. on Automated Deduction, LNCS 87, Springer Verlag, pages 318–334.Google Scholar
  14. [Josephson 89]
    A. Josephson and N. Dershowitz 1989 “An Implementation of Narrowing” J. Logic Programming, 6, 3, pages 57–77.CrossRefMathSciNetGoogle Scholar
  15. [Lankford 75]
    D. Lankford “Canonical Inference” Univ. of Texas, Math. Dept., Automatic Theorem Proving Project, Austin, Texas, Rep. ATp-32.Google Scholar
  16. [Lindstrom 85]
    G. Lindstrom “Functional Programming and the Logical Variable” 12th ACM Symp. on Principles of Programming Languages, pages 266–280.Google Scholar
  17. [Lassez 87]
    J-L. Lassez, M.J. Maher and K. Marriott “Unification Revised” Foundations of Deductive Databases and Logic Programming, J. Minker ed., Morgan Kaufmann Pub., pages 587–626.Google Scholar
  18. [Lins 86]
    R.D. Lins 1986 “Categorical Multi-combinators” Univ. of Kent, Computing Lab., Canterbury, U.K.Google Scholar
  19. [Martelli 86]
    A. Martelli, C. Moiso and G.F. Rossi “An Algorithm for Unification in Equational Theories” 1986 Symp. on Logic Programming, Seattle, IEEE Comp. Soc. Press, pages 180–186.Google Scholar
  20. [Morris 80]
    J.H. Morris, E. Schmidt and P. Wandler “Experience with an Applicative String Processing Language”Google Scholar
  21. [Plaisted 84]
    D.A. Plaisted “The Occur-check Problem in Prolog” 1984 Symp. on Logic Programming, Atlantic City, IEEE Comp. Soc. Press, pages 272–280.Google Scholar
  22. [Reddy 85]
    U.S. Reddy “Narrowing as the Operational Semantics of Functional Languages” 1985 Symp. on Logic Programming, Boston, IEEE Comp. Soc. Press, pages 138–151.Google Scholar
  23. [Reddy 86]
    U.S. Reddy 1986 “On the Relationship between Logic and Functional Languages” Logic Programming, R. De Groot and G. Lindstrom eds., Prentice-Hall, Englewood Cliffs, N.J., pages 3–23.Google Scholar
  24. [Robinson 87]
    J.A. Robinson “Beyond LogLisp: Combining Functional and Relational Programming in a Reduction Settiing” Machine Intelligence, 11, pages 57–68.Google Scholar
  25. [Turner 79]
    D.A. Turner 1979 “A New Implementation Technique for Applicative Languages” Software, Practice and Experience, 9, pages 31–49.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1990

Authors and Affiliations

  • M. Bellia
    • 1
  • M. Bugliesi
    • 2
  • M. E. Occhiuto
    • 3
  1. 1.Dipartimento di MatematicaUniversità di NapoliNapoliItaly
  2. 2.Enidata S.p.A.BolognaItaly
  3. 3.Dipartimento di InformaticaUniversità di PisaPisaItaly

Personalised recommendations