Functional logic languages part I

  • Uday S. Reddy
Relationship To Logic Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 279)


Functional logic languages are extensions of functional languages with principles derived from logic programming. While syntactically they look similar to conventional functional languages, their operational semantics is based on narrowing, an evaluation mechanism that uses unification for parameter passing. We present here a small formal language based on lambda calculus with existential quantification and set abstraction, and define its denotational and narrowing semantics.


Logic Programming Operational Semantic Logical Variable Logic Language Functional Language 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [BMS80]
    R. M. Burstall, D. B. MacQueen, and D. T. Sanella. Hope: an experimental applicative language. In ACM LISP Conference, pages 136–143, 1980.Google Scholar
  2. [CKPR73]
    A. Colmerauer, H. Kanouri, R. Pasero, and P. Roussel. Un Systeme de Communication Homme-machine en Francais. Research Report, Groupe Intelligence Artificielle, Universite Aix-Marseille II, 1973.Google Scholar
  3. [CM81]
    W. F. Clocksin and C. S. Mellish. Programming in Prolog. Springer-Verlag, 1981.Google Scholar
  4. [DFP86]
    J. Darlington, A. J. Field, and H. Pull. The unification of functional and logic languages. In D. DeGroot and G. Lindstrom, editors, Logic Programming: Functions, Relations and Equations, pages 37–70, Prentice-Hall, 1986.Google Scholar
  5. [Fay79]
    M. Fay. First-order unification in an equational theory. In Fourth Workshop on Automated Deduction, pages 161–167, Austin, Texas, 1979.Google Scholar
  6. [Hul80]
    J-M. Hullot. Canonical forms and unification. In Conference on Automated Deduction, pages 318–334, 1980.Google Scholar
  7. [Kow79]
    R. A. Kowalski. Logic for Problem Solving. North-Holland, 1979.Google Scholar
  8. [Kow83]
    R. Kowalski. Logic programming. In R. E. A. Mason, editor, Information Processing, pages 133–145, North-Holland, 1983.Google Scholar
  9. [Lin85]
    G. Lindstrom. Functional programming and the logical variable. In ACM Symposium on Principles of Programming Languages, 1985.Google Scholar
  10. [Mil78]
    R. Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17:348–375, 1978.CrossRefGoogle Scholar
  11. [Mil84]
    R Milner. A proposal for Standard ML. In ACM Symposium on LISP and Functional Programming, pages 184–197, 1984.Google Scholar
  12. [NPA86]
    R.S. Nikhil, K. Pingali, and Arvind. Id Nouveau. Technical Report CSG 265, MIT, 1986.Google Scholar
  13. [Red85]
    U. S. Reddy. Narrowing as the operational semantics of functional languages. In Symposium on Logic Programming, IEEE, Boston, 1985.Google Scholar
  14. [Red86a]
    U. S. Reddy. On the relationship between logic and functional languages. In D. DeGroot and G. Lindstrom, editors, Logic Programming: Functions, Relations and Equations, pages 3–36, Prentice-Hall, 1986.Google Scholar
  15. [Red86b]
    U.S. Reddy. Logic Languages based on Functions: Semantics and Implementation. Technical Report UIUCDCS-R-86-1305, University of Illinois at Urbana-Champaign, 1986. Ph.D. thesis done at University of Utah.Google Scholar
  16. [Sla74]
    J.R. Slagle. Automated theorem-proving for theories with simplifiers, commutativity and associativity. Journal of the ACM, 21(4):622–642, 1974.CrossRefGoogle Scholar
  17. [Smo86]
    G. Smolka. Fresh: a higher-order language based on unification. In D. DeGroot and G. Lindstrom, editors, Logic Programming: Functions, Relations and Equations, pages 469–524, Prentice-Hall, 1986.Google Scholar
  18. [SS84]
    M. Sato and T. Sakurai. Qute: a functional language based on unification. In Intl. Conf. Fifth Generation Computer Systems, pages 157–165, ICOT, 1984.Google Scholar
  19. [Tur81]
    D.A Turner. The semantic elegance of applicative languages. In Proceedings of the 1981 conference on Functional Programming Languages and Computer Architecture, pages 85–92, ACM, 1981.Google Scholar
  20. [Tur85]
    D.A. Turner. Miranda: a non-strict functional language with polymorphic types. In J-P. Jouannaud, editor, Functional Programming Languages and Computer Architecture, pages 1–16, Springer-Verlag, 1985.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Uday S. Reddy
    • 1
  1. 1.University of Illinois at Urbana-ChampaignUSA

Personalised recommendations