Skip to main content

Functional and Constraint Logic Programming

  • Chapter
  • First Online:
Constraints in Computational Logics (CCL 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2002))

Included in the following conference series:

Abstracts

Starting at a seminal paper published by J. Jaffar and J.L. Lassez in 1987 [JL87], Constraint Logic Programming (CLP) has developed as a powerful programming paradigm which supports a clean combination of logic (in the form of Horn clauses) and domain-specific methods for constraint satisfaction, simplification and optimization. The well established mathematical foundations of logic programming [Llo87, Apt90] have been succesfully extended to CLP [JMMS96]. Simultaneously, practical applications of CLP have arisen in many fields. Good introductions to the theory, implementation issues and programming applications of CLP languages can be found in [JM94, MS98]. On the other hand, the combination of logic programming with other declarative programming paradigms (especially functional programming) has been widely investigated during the last decade, leading to useful insights for the design of more expressive declarative languages. The first attempt to combine functional and logic languages was done by J.A. Robinson and E.E. Sibert when proposing the language LOGLISP [RS82]. Some other early proposals for the design of functional + logic languages are described in [De86]. A more recent survey of the operational principles and implementation techniques used for the integration of functions into logic programming can be found in [Han94b].

This research has been partially supported by the Spanish National Project TIC98-0445-C03-02 “TREND” and the Esprit BRA Working Group EP-22457 “CCLII”.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. S. Antoy, R. Echahed, and M. Hanus. A needed narrowing strategy. In Proc. ACM Symp. on Principles of Programming Languages (POPL’94), ACM Press, pages 268–279, 1994.

    Google Scholar 

  2. S. Antoy and M. Hanus. Compiling multiparadigm declarative programming into Prolog. In Proc. Int. Workshop on Frontiers of Combining Systems (FROCOS’2000), volume 1794 of Springer LNCS, pages 171–185, 2000.

    Google Scholar 

  3. H. Aït-Kaci, P. Lincoln, and R. Nasr. Le Fun: Logic, equations and functions. In Proc. IEEE Int. Symp. on Logic Programming, IEEE Comp. Soc. Press, pages 17–23, 1987.

    Google Scholar 

  4. J. Avenhaus and C. Loría-Sáez. Higer order conditional rewriting and narrowing. In Proc. 1st Int. Conference on Constraints in Computational Logics (CCL’94), volume 845 of Springer LNCS, pages 269–284, 1994.

    Google Scholar 

  5. S. Antoy. Lazy evaluation in logic. In Proc. Int. Symp. on Programming Language Implementation and Logic Programming (PLILP’91), volume 528 of Springer LNCS, pages 371–382, 1991.

    Google Scholar 

  6. S. Antoy. Definitional trees. In Proc. Int. Conf. on Algebraic and Logic Programming (ALP’92), volume 632 of Springer LNCS, pages 143–157, 1992.

    Google Scholar 

  7. S. Antoy. Optimal non-deterministic functional logic computations. In Proc. Int. Conf. on Algebraic and Logic Programming (ALP’97), volume 1298 of Springer LNCS, pages 16–30, 1997.

    Google Scholar 

  8. K.R. Apt. Logic programming. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B, chapter 10, pages 493–574. Elsevier and The MIT Press

    Google Scholar 

  9. P. Arenas-Sánchez. Programación Declarativa con Restricciones sobre Tipos de Datos Algebraicos (in spanish). PhD thesis, Universidad Complutense de Madrid, 1998.

    Google Scholar 

  10. P. Arenas-Sánchez, A. Gil-Luezas, and F.J. López-Fraguas. Combining lazy narrowing with disequality constraints. In Proc. Int. Symp. on Programming Language Implementation and Logic Programming (PLILP’94), volume 844 of Springer LNCS, pages 385–399, 1994.

    Google Scholar 

  11. P. Arenas-Sánchez, F.J. López-Fraguas, and M. Rodriguez-Artalejo. Embedding multiset constraints into a lazy functional logic language. In Proc. Int. Symp. on Programming Language Implementation and Logic Programming (PLILP’98), held jointly with the 6th Int. Conf. on Algebraic and Logic Programming (ALP’98), volume 1490 of Springer LNCS, pages 429–444, 1998.

    Google Scholar 

  12. P. Arenas-Sánchez, F.J. López-Fraguas, and M. Rodríguez-Artalejo. Functional plus logic programming with built-in and symbolic constraints. In Proc. Int. Conf. on Principles and Practice of Declarative Programming (PPDP’99), volume 1702 of Springer LNCS, pages 152–169, 1999.

    Google Scholar 

  13. P. Arenas-Sánchez and M. Rodriguez-Artalejo. A lazy narrowing calculus for functional logic programming with algebraic polymorphic types. In Proc. Int. Symp. on Logic Programming (ILPS’97), The MIT Press, pages 53–68, 1997.

    Google Scholar 

  14. P. Arenas-Sánchez and M. Rodríguez-Artalejo. A semantic framework for functional logic programming with algebraic polymorphic types. In Proc. Int. Joint Conference on Theory and Practice of Software Development (TAPSOFT’97), volume 1214 of Springer LNCS, pages 453–464, 1997.

    Google Scholar 

  15. P. Arenas-Sánchez and M. Rodríguez-Artalejo. A general framework for lazy functional logic programming with algebraic polymorphic types. Theory and Practice of Logic Programming, To appear.

    Google Scholar 

  16. P.G. Bosco and E. Giovannetti. IDEAL: an ideal deductive applicative language. In Proc. IEEE Int. Symp. on Logic Programming, IEEE Comp. Soc. Press, pages 89–95, 1986.

    Google Scholar 

  17. A. Bossi, M. Gabbrielli, G. Levi, and M. Martelli. The s-semantics approach: Theory and applications. Journal of Logic Programming, 19&20:3–23, 1994.

    MathSciNet  Google Scholar 

  18. P.G. Bosco, E. Giovannetti, and C. Moiso. Narrowing vs. SLDresolution. Theoretical Computer Science, 59:3–23, 1988.

    Article  MATH  MathSciNet  Google Scholar 

  19. P. Borovansky, C. Kirchner, H. Kirchner, P. Moreau, and M. Vittek. Elan, a logical framework based on computational systems. In Proc. of the First International Workshop on Rewriting Logic and its Applications, volume 4 of Electronic Notes in Theoretical Computer Science, pages 35–50. Elsevier Science, 1996. Electronic publication.

    Google Scholar 

  20. J.P. Banâtre and D. Le Métayer. The Gamma model and its discipline of programming. Science of Computer Programming, 15:55–77, 1990.

    Article  MATH  MathSciNet  Google Scholar 

  21. J.P. Banâtre and D. Le Métayer. Programming by multiset transformation. Communications of the ACM, 36:98–111, 1993.

    Article  Google Scholar 

  22. F. Baader and T. Nipkow. Term Rewriting and All That. Cambridge University Press, 1998.

    Google Scholar 

  23. H.P. Barendregt, M.C.J.D. van Eeckelen, J.R.W. Glauert, J.R. Kennaway, M.J. Plasmeijer, and M.R. Sleep. Term graph rewriting. In Proc. PARLE’87, volume 259 of Springer LNCS, pages 141–158, 1987.

    Google Scholar 

  24. M. Clavel, F. Durán, S. Eker, P. Lincoln, N. Martí-Oliet, J. Meseguer, and J. Quesada. Maude: Specification and programming in rewriting logic. Technical report, Computer Science Laboratory, SRI International, 1999.

    Google Scholar 

  25. P.H. Cheong and L. Fribourg. Implementation of narrowing, the Prolog-based approach. In de Bakker Apt and Rutten, editors, Logic Programming Languages: Constraints, Functions and Objects, pages 1–20. The MIT Press, 1993.

    Google Scholar 

  26. A. Church. A formulation of the simple theory of types. Journal of Symbolic Logic, 5:56–68, 1940.

    Article  MATH  MathSciNet  Google Scholar 

  27. W. Chen, M. Kifer, and D.S. Warren. HiLog: A foundation for higher-order logic programming. Journal of Logic Programming, 15:187–230, 1993.

    Article  MATH  MathSciNet  Google Scholar 

  28. R. Caballero-Roldán and F.J. López-Fraguas. Extensions: A technique for structuring functional logic programs. In Proc. Third Int. Conf. on Perspectives of System Informatics, volume 1755 of Springer LNCS, pages 297–310, 1999.

    Google Scholar 

  29. R. Caballero-Roldán and F.J. López-Fraguas. A functional-logic perspective of parsing. In Proc. 4th Fuji Int. Symp. on Functional and Logic Programming (FLOPS’99), volume 1722 of Springer LNCS, pages 85–99, 1999.

    Book  Google Scholar 

  30. D. DeGroot and G. Lindstrom (eds.). Logic Programming: Functions, Relations and Equations. Prentice-Hall, Englewood Cliffs, 1986.

    MATH  Google Scholar 

  31. R. Diaconescu, K. Futatsugi, M. Ishisone, A.T. Nagakawa, and T. Sawada. An overview of CafeOBJ. In Proc. of the First International Workshop on Rewriting Logic and its Applications, volume 4 of Electronic Notes in Theoretical Computer Science, pages 75–88. Elsevier Science, 1996. Electronic publication.

    Google Scholar 

  32. N. Dershowitz and J.P. Jouannaud. Rewrite systems. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B, chapter 6, pages 243–320. Elsevier and The MIT Press, 1990.

    Google Scholar 

  33. N. Dershowitz and Z. Manna. Proving termination with multiset orderings. Communications of the ACM, 22(8):465–476, 1979.

    Article  MATH  MathSciNet  Google Scholar 

  34. L. Damas and R. Milner. Principal type schemes for functional programs. In Proc. ACM Symp. on Principles of Programming Languages (POPL’82), ACM Press, pages 207–212, 1982.

    Google Scholar 

  35. N. Dershowitz and M. Okada. A rationale for conditional equational programming. Theoretical Computer Science, 75:111–138, 1990.

    Article  MATH  MathSciNet  Google Scholar 

  36. R. Echahed. On completeness of narrowing strategies. Theoretical Computer Science, 72:133–146, 1990.

    Article  MATH  MathSciNet  Google Scholar 

  37. R. Echahed. Uniform narrowing strategies. In Proc. 3rd Int. Conf on Algebraic and Logic Programming (ALP’92), volume 632 of Springer LNCS, pages 259–275, 1992.

    Google Scholar 

  38. M.J. Fay. First-order unification in an equational theory. In Proc. Workshop on Automated Deduction (CADE’79), Academic Press, pages 161–177, 1979.

    Google Scholar 

  39. M. Falaschi, G. Levi, M. Martelli, and C. Palamidessi. A modeltheoretic reconstruction of the operational semantics of logic programs. Information and Computation, 102(1):86–113, 1993.

    Article  MathSciNet  Google Scholar 

  40. L. Fribourg. SLOG: A logic programming interpreter based on clausal superposition and rewriting. In Proc. IEEE Int. Symp. on Logic Programming, IEEE Comp. Soc. Press, pages 172–184, 1985.

    Google Scholar 

  41. E. Giovannetti, G. Levi, C. Moiso, and C. Palamidessi. Kernel-LEAF: A logic plus functional language. Journal of Computer and System Science, 42(2):139–185, 1991.

    Article  MATH  Google Scholar 

  42. E. Giovannetti and C. Moiso. A completeness result for eunification algorithms based on conditional narrowing. In Proc. of the Workshop on Foundations of Logic and Functional Programming, Trento, volume 306 of Springer LNCS, pages 157–167, 1986.

    Google Scholar 

  43. J.A. Goguen and J. Meseguer. Models and equality for logical programming. In Proc. TAPSOFT’87, volume 250 of Springer LNCS, pages 1–22, 1987.

    Google Scholar 

  44. J.C. González-Moreno. Programación Lógica de Orden Superior con Combinadores (in spanish). PhD thesis, Universidad Complutense de Madrid, 1994.

    Google Scholar 

  45. J.C. González-Moreno, M.T. Hortalá-González, F.J. López-Fraguas, and M. Rodríguez-Artalejo. An approach to declarative programming based on a rewriting logic. Journal of Logic Programming, 40(1):47–87, 1999.

    Article  MATH  MathSciNet  Google Scholar 

  46. J.C. González-Moreno, M.T. Hortalá-González, and M. Rodríguez-Artalejo. Denotational versus declarative semantics for functional programming. In Proc. Int. Conf. on Computer Science Logic (CSL’91), volume 626 of Springer LNCS, pages 134–148, 1992.

    Google Scholar 

  47. J.C. González-Moreno, M.T. Hortalá-González, and M. Rodríguez-Artalejo. On the completeness of narrowing as the operational semantics of functional logic programming. In Proc. Int. Conf. on Computer Science Logic (CSL’92), volume 702 of Springer LNCS, pages 216–230, 1993.

    Google Scholar 

  48. J.C. González-Moreno, M.T. Hortalá-González, and M. Rodríguez-Artalejo. A rewriting logic for declarative programming. In Proc. European Symp. on Programming (ESOP’96), volume 1058 of Springer LNCS, pages 156–172, 1996.

    Google Scholar 

  49. J.C. González-Moreno, M.T. Hortalá-González, and M. Rodríguez-Artalejo. A higher order rewriting logic for functional logic programming. In Proc. Int. Conf. on Logic Programming (ICLP’97), The MIT Press, pages 153–167, 1997.

    Google Scholar 

  50. J.C. González-Moreno, M.T. Hortalá-González, and M. Rodríguez-Artalejo. Semantics and types in functional logic programming. In Proc. 4th Fuji International Symposium on Functional and Logic Programming (FLOPS’99), volume 1722 of Springer LNCS, pages 1–20, 1999.

    Book  Google Scholar 

  51. C.A. Gunter and D. Scott. Semantic domains. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B, chapter 6, pages 633–674. Elsevier and The MIT Press, 1990.

    Google Scholar 

  52. J.A. Goguen, J.W. Thatcher, E.G. Wagner, and J.B. Wright. Initial algebra semantics and continuous algebras. Journal of the ACM, 24(1):68–95, 1977.

    Article  MATH  MathSciNet  Google Scholar 

  53. M. Hanus et al. Curry: an integrated functional logic language, version 0.7. Technical report, Universität Kiel, February 2000. Available at http://www.informatik.uni-kiel.de/curry/.

  54. M. Hanus. Polymorphic higher-order programming in Prolog. In Proc. Int. Conf. on Logic Programming (ICLP’89), The MIT Press, pages 382–397, 1989.

    Google Scholar 

  55. M. Hanus. A functional and logic language with polymorphic types. In Proc. Int. Symp. on Design and implementation of Symbolic Computation Systems, volume 429 of Springer LNCS, pages 215–224, 1990.

    Google Scholar 

  56. M. Hanus. Combining lzy narrowing and simplification. In Proc. Int. Symp. on Programming Language Impplementation and Logic Programming (PLILP’94), volume 884 of Springer LNCS, pages 370–384, 1994.

    Google Scholar 

  57. M. Hanus. The integration of functions into logic programming: From theory to practice. Journal of Logic Programming, 9&20:583–628, 1994.

    Article  MathSciNet  Google Scholar 

  58. M. Hanus. Efficient translation of lazy functional logic programs into Prolog. In Proc. Int. Workshop on Logic Programming Synthesis and Transformation (LOPSTR’95), volume 1048 of Springer LNCS, pages 252–266, 1995.

    Google Scholar 

  59. M. Hanus. A unified computation model for functional and logic programming. In Proc. ACM Symp. on Principles of Programming Languages (POPL’97), ACM Press, pages 80–93, 1997.

    Google Scholar 

  60. G. Huet and J.J. Lévy. Call by need computations in nonambiguous linear term rewriting systems. Technical Report 359, IRIA, 1979.

    Google Scholar 

  61. G. Huet and J.J. Lévy. Computations in orthogonal term rewriting systems i, ii. In J.L. Lassez and G. Plotkin, editors, Computational Logic: Essays in Honour of J. Alan Robinson, pages 395–414 and 415–443. The MIT Press, 1991.

    Google Scholar 

  62. P.M. Hill and J.W. Lloyd. The Gödel Programming Language. Logic Programming Series. The MIT Press, 1994.

    Google Scholar 

  63. R. Helm and K. Marriott. Declarative specification and semantics for visual languages. Journal of Visual Languages and Computing, 2:311–331, 1991.

    Article  Google Scholar 

  64. M. Hamada and A. Middeldorp. Strong completeness of a lazy conditional narrowing calculus. In Proc 2nd Fuji Int. Workshop on Functional and Logic Programming, World Scientific, pages 14–32, 1997.

    Google Scholar 

  65. S. Hölldobler. Foundations of Equational Logic Programming. Lecture Notes in Computer Science. Springer Verlag, 1989.

    MATH  Google Scholar 

  66. A. Habel and D. Plump. Term graph narrowing. Mathematical Structures in Computer Science, 6(6):649–676, 1996.

    MATH  MathSciNet  Google Scholar 

  67. A. Habel and D. Plump. Complete strategies for term graph narrowing. In Recent Trends in Algebraic Development Techniques, volume 1589 of Springer LNCS, pages 152–167, 1999.

    Google Scholar 

  68. M. Hanus and C. Prehofer. Higher-order narrowing with definitional trees. Journal of Functional Programming, 9(1):33–75, 1999. Preliminary version appeared in Proc. Int. Conf. on Rewriting Techniques and Applications (RTA’96), Springer LNCS 1103, pp. 138-152, 1996.

    Google Scholar 

  69. J.R. Hindley and J.P. Seldin. Introduction to Combinators and λ-Calculus. Number 1 in London Mathematical Society Student Texts. Cambridge University Press, 1986. (reprinted 1988,1990).

    Google Scholar 

  70. S. Hölldobler and J. Schneeberger. A new deductive approach to planning. New Generation Computing, 8:225–244, 1990.

    Article  MATH  Google Scholar 

  71. J.M. Hullot. Canonical forms and unification. In Proc. Conf. on Automated Deduction (CADE’80), volume 87 of Springer LNCS, pages 318–334, 1980.

    Google Scholar 

  72. H. Hussmann. Nondeterministic algebraic specifications and nonconfluent term rewriting. Journal of Logic Programming, 12:237–255, 1992.

    Article  MATH  MathSciNet  Google Scholar 

  73. H. Hussmann. Non-determinism in Algebraic Specifications and Algebraic Programs. Birkhäuser Verlag, 1993.

    Google Scholar 

  74. T. Ida and K. Nakahara. Leftmost outside-in narrowing calculi. Journal of Functional Programming, 7(2):129–161, 1997.

    Article  MATH  MathSciNet  Google Scholar 

  75. Intelligent Systems Laboratory, Swedish Institute of Computer Science. SICStus Prolog User’s Manual, Release 3.8, October 1999.

    Google Scholar 

  76. J. Jaffar and J.L. Lassez. Constraint logic programming. In Proc. ACM Symp. on Principles of Programming Languages (POPL’97), ACM Press, pages 111–119, 1987.

    Google Scholar 

  77. J. Jaffar, J.L. Lassez, and M.J. Maher. A theory of complete logic programs with equality. Journal of Logic Programming, 1:211–223, 1984.

    Article  MATH  MathSciNet  Google Scholar 

  78. J. Jaffar and M.J. Maher. Constraint logic programming: A survey. Journal of Logic Programming, 19&20:503–581, 1994.

    Article  MathSciNet  Google Scholar 

  79. J. Jaffar, M.J. Maher, K. Marriott, and P.J. Stuckey. The semantics of constraint logic programs. Technical Report 96/39, University of Melbourne, 1996.

    Google Scholar 

  80. J. Jaffar, S. Michaylov, P.J. Stuckey, and R.H.C. Yap. The CLP(R) language and system. ACM Transactions on Programming Languages and Systems, 14(3):339–395, 1992.

    Article  Google Scholar 

  81. S. Kaplan. Symplifying conditional term rewriting systems: Unification, termination and confluence. Journal of Symbolic Computation, 4(3):295–334, 1987.

    Article  MATH  MathSciNet  Google Scholar 

  82. H. Kuchen, F.J. Lopez-Fraguas, J.J. Moreno-Navarro, and M. Rodríguez-Artalejo. Implementing a lazy functional logic language with disequality constraints. In Proc. Joint Int. Conf. and Symposium on Logic Programming (JICSLP’92), The MIT Press, pages 207–221, 1992.

    Google Scholar 

  83. J.W. Klop. Term rewriting systems. In S. Abramsky, D.M. Gabbay, and T.S.E. Maibaum, editors, Handbook of Logic in Computer Science, volume 2, pages 2–116. Oxford University Press, 1992.

    Google Scholar 

  84. D.S. Lankford. Canonical inference. Technical Report ATP-32, Department of Mathematics and Computer Science, University of Texas at Austin, 1975.

    Google Scholar 

  85. F.J. López-Fraguas. A general scheme for constraint functional logic programming. In Proc. Int. Conf. on Algebraic and Logic Programming (ALP’92), volume 632 of Springer LNCS, pages 213–227, 1992.

    Google Scholar 

  86. F.J. López-Fraguas. Programación Funcional y Lógica con Restricciones (in spanish). PhD thesis, Universidad Complutense de Madrid, 1994.

    Google Scholar 

  87. F.J. López-Fraguas and J. Sánchez-Hernández. TOY: A multiparadigm declarative system. In Proc. 10th Int. Conf. on Rewriting Techniques and Applications (RTA’99), volume 1631 of Springer LNCS, pages 244–247, 1999. Available at http://titan.sip.ucm.es/toy.

    Google Scholar 

  88. R. Loogen, F.J. López-Fraguas, and M. Rodríguez-Artalejo. A demand driven computation strategy for lazy narrowing. In Proc. Int. Symp. on Programming Language Implementation and Logic Programming (PLILP’93), volume 714 of Springer LNCS, pages 184–200, 1993.

    Google Scholar 

  89. J.W. Lloyd. Foundations of Logic Programming. Springer Verlag, 1987. 2nd. ed.

    Google Scholar 

  90. J.W. Lloyd. Declarative programming in escher. Technical Report CSTR-95-013, Univ. of Bristol, Dept. of Comp. Sci., 1995.

    Google Scholar 

  91. J.W. Lloyd. Programming in an integrated functional and logic language. Electronic Journal of Functional and Logic Programming, 1999.

    Google Scholar 

  92. K. Marriott. Constraint multiset grammars. In Proc. IEEE Symp. on Visual Languages, IEEE Comp. Soc. Press, pages 118–125, 1994.

    Google Scholar 

  93. J.M. Molina-Bravo and E. Pimentel. Modularity in functionallogic programming. In Proc. Int. Conf. on Logic Programming (ICLP’97), The MIT Press, pages 183–197, 1997. Extended version to appear in the Journal of Logic Programming.

    Google Scholar 

  94. J. Meseguer. Conditional rewriting logic as a unified model of concurrency. Theoretical Computer Science, 96:73–155, 1992.

    Article  MATH  MathSciNet  Google Scholar 

  95. A. Middeldorp and E. Hamoen. Completeness results for basic narrowing. Applicable Algebra in Engineering, Communications and Computing, 5:213–253, 1994.

    Article  MATH  MathSciNet  Google Scholar 

  96. R. Milner. A theory of type polymorphism in programming. Journal of Computer and Systems Sciences, 17:348–375, 1978.

    Article  MATH  MathSciNet  Google Scholar 

  97. D. Miller. A logic programming language with lambdaabstraction, function variables and simple unification. Journal of Logic and Computation, 1:497–536, 1991.

    Article  MATH  MathSciNet  Google Scholar 

  98. M. Marin, T. Ida, and T. Suzuki. On reducing the search space of higher-order lazy narrowing. In Proc. 4th Fuji International Symposium on Functional and Logic Programming (FLOPS’99), volume 1722 of Springer LNCS, pages 319–334, 1999.

    Google Scholar 

  99. N. Martí and J. Meseguer. Action and change in rewriting logic. In R. Pareschi and B. Fronhöfer, editors, Dynamic Worlds: From the Frame Problem to Knowledge Management, volume 12 of Applied Logic Series, pages 1–53. Kluwer Academic Publishers, 1999.

    Google Scholar 

  100. K. Marriott, B. Meyer, and K.B. Wittenburg. A survey of visual language specification and recognition. In K. Marriott and B. Meyer, editors, Visual Language Theory, chapter 2, pages 5–85. Springer Verlag, 1998.

    Google Scholar 

  101. D. Miller and G. Nadathur. Higher-order logic programming. In Proc. Int. Conf. on Logic Programming (ICLP’86), volume 225 of Springer LNCS, pages 448–462, 1986.

    Google Scholar 

  102. J.J. Moreno-Navarro and M. Rodrǵuez-Artalejo. Logic programming with functions and predicates: The language babel. Journal of Logic Programming, 12:191–223, 1992.

    Article  MATH  Google Scholar 

  103. A. Middeldorp and S. Okui. A deterministic lazy narrowing calculus. Journal of Symbolic Computation, 25(6):104–118, 1995.

    MathSciNet  Google Scholar 

  104. A. Middeldorp, S. Okui, and T. Ida. Lazy narrowing: Strong completeness and eager variable elimination. Theoretical Computer Science, 167:95–130, 1996. preliminary version appeared in Proc. CAAP’95, Springer LNCS 915, pp. 394–408, 1995.

    Google Scholar 

  105. B. Möller. On the algebraic specification of infinite objects-ordered and continuous models of algebraic types. Acta Informatica, 22:537–578, 1985.

    MATH  MathSciNet  Google Scholar 

  106. P. Mosses. Denotational semantics. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B, chapter 11, pages 575–631. Elsevier and The MIT Press, 1990.

    Google Scholar 

  107. K. Marriott and P.J. Stuckey. Programming with Constraints, an Introduction. The MIT Press, 1998.

    Google Scholar 

  108. L. Naish. Negation and Control in Prolog. Lecture Notes in Computer Science. Springer Verlag, 1987.

    Google Scholar 

  109. L. Naish. A declarative debugging scheme. Journal of Functional and Logic Programming, 1997(3). 27 pages.

    Google Scholar 

  110. S. Narain. A technique for doing lazy evaluation in logic. Journal of Logic Programming, 3:259–276, 1986.

    Article  MATH  MathSciNet  Google Scholar 

  111. G. Nadathur and D. Miller. An overview of λ-Prolog. In Proc. Int. Conf. on Logic Programming (ICLP’88), The MIT Press, pages 810–827, 1988.

    Google Scholar 

  112. K. Nakahara, A. Middeldorp, and T. Ida. A complete narrowing calculus for higher order functional logic programming. In Proc. Int. Symp. on Programming Language Implementation and Logic Programming (PLILP’95), volume 982 of Springer LNCS, pages 97–114, 1995.

    Google Scholar 

  113. W. Nutt, P. Réty, and G. Smolka. Basic narrowing revisited. Journal of Symbolic Computation, 7:295–317, 1989.

    Article  MATH  MathSciNet  Google Scholar 

  114. P. Padawitz. Strategy-controlled reduction and narrowing. In Proc. Int. Conf. on Rewriting Techniques and Applications (RTA’87), volume 256 of Springer LNCS, pages 242–255, 1987.

    Google Scholar 

  115. J. Peterson and K. Hammond (eds.). Report on the programming language Haskell 98, a non-strict, purely functional language. Technical report, February 1999.

    Google Scholar 

  116. C. Prehofer. Higher-order narrowing. In Proc. IEEE Symp. on Logic in Computer Science (LICS’94), IEEE Comp. Soc. Press, pages 507–516, 1994.

    Google Scholar 

  117. C. Prehofer. A call-by-need strategy for higher-order functional logic programming. In Proc. Int. Logic Programming Symp. (ILPS’95), The MIT Press, pages 147–161, 1995.

    Google Scholar 

  118. C. Prehofer. Solving Higher Order Equations: From Logic to Programming. Birkhäuser Verlag, 1998.

    Google Scholar 

  119. U. Reddy. Narrowing as the operational semantics of functional languages. In Proc. Int. Symp. on Logic Programming, IEEE Comp. Soc. Press, pages 138–151, 1985.

    Google Scholar 

  120. J.A. Robinson and E.E. Sibert. LOGLISP: Motivation, design and implementation. In K.L. Clark and S.A. Tärnlund, editors, Logic Programming, pages 299–313. Academic Press, 1982.

    Google Scholar 

  121. A. Sarmiento-Escalona. Una aproximación a la Programación Lógica con Funciones Indeterministas (in spanish). PhD thesis, Universidad A Coruña, 1992.

    Google Scholar 

  122. W. Snyder and J. Gallier. Higher-order unification revisited: Complete sets of transformations. Journal of Symbolic Computation, 8:101–140, 1989.

    Article  MATH  MathSciNet  Google Scholar 

  123. J.R. Slagle. Automated theorem-proving for theories with simplifiers, commutativity and associativity. Journal of the ACM, 21(4):622–642, 1974.

    Article  MATH  MathSciNet  Google Scholar 

  124. G. Smolka. The Oz programming model. In J. van Leeuwen, editor, Computer Science Today: Recent Trends and Developments, number 1000 in Lecture Notes in Computer Science, pages 324–343. Springer Verlag, 1995.

    Google Scholar 

  125. T. Suzuki, K. Nakagawa, and T. Ida. Higher-order lazy narrowing calculus: A computation model for a higher-order functional logic language. In Proc. Int. Conf. on Algebraic and Logic Programming (ALP’97), volume 1298 of Springer LNCS, pages 99–113, 1997.

    Google Scholar 

  126. W._Snyder. A Proof Theory for General Unification. Birkhäuser Verlag, 1991.

    Google Scholar 

  127. P. Wadler. How to replace failure by a list of successes. In Proc. IFIP Int. Conf. on Funct. Prog. Lang. and Computer Architectures, volume 201 of Springer LNCS, pages 113–128, 1985.

    Google Scholar 

  128. D.H.D. Warren. Higher-order extensions to Prolog: are they needed? In D. Michie J.E. Hayes and Y.H. Yao, editors, Machine Intelligence, volume 10, pages 441–454. Edinburg Univ. Press, 1982.

    Google Scholar 

  129. J.H. You. Enumerating outer narrowing derivations for constructor-based term rewriting systems. Journal of Symbolic Computation, 7:319–341, 1989.

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Rodríguez-Artalejo, M. (2001). Functional and Constraint Logic Programming. In: Goos, G., Hartmanis, J., van Leeuwen, J., Comon, H., Marché, C., Treinen, R. (eds) Constraints in Computational Logics. CCL 1999. Lecture Notes in Computer Science, vol 2002. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45406-3_5

Download citation

  • DOI: https://doi.org/10.1007/3-540-45406-3_5

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41950-1

  • Online ISBN: 978-3-540-45406-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics