Skip to main content

Multi-paradigm Declarative Languages

  • Conference paper
Logic Programming (ICLP 2007)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4670))

Included in the following conference series:

Abstract

Declarative programming languages advocate a programming style expressing the properties of problems and their solutions rather than how to compute individual solutions. Depending on the underlying formalism to express such properties, one can distinguish different classes of declarative languages, like functional, logic, or constraint programming languages. This paper surveys approaches to combine these different classes into a single programming language.

This work was partially supported by the German Research Council (DFG) under grant Ha 2457/5-2 and the NSF under grant CCR-0218224.

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. Aït-Kaci, H.: An Overview of LIFE. In: Schmidt, J.W., Stogny, A.A. (eds.) Next Generation Information System Technology. LNCS, vol. 504, pp. 42–58. Springer, Heidelberg (1991)

    Google Scholar 

  2. Aït-Kaci, H., Lincoln, P., Nasr, R.: Le Fun: Logic, equations, and Functions. In: Proc. 4th IEEE Internat. Symposium on Logic Programming, pp. 17–23. IEEE Computer Society Press, San Francisco (1987)

    Google Scholar 

  3. Antoy, S.: Non-Determinism and Lazy Evaluation in Logic Programming. In: Proc. Int. Workshop on Logic Program Synthesis and Transformation (LOPSTR 1991), Workshops in Computing, pp. 318–331. Springer, Heidelberg (1991)

    Google Scholar 

  4. Antoy, S.: Definitional Trees. In: Kirchner, H., Levi, G. (eds.) Algebraic and Logic Programming. LNCS, vol. 632, pp. 143–157. Springer, Heidelberg (1992)

    Chapter  Google Scholar 

  5. Antoy, S.: Optimal Non-Deterministic Functional Logic Computations. In: Hanus, M., Heering, J., Meinke, K. (eds.) ALP 1997 and HOA 1997. LNCS, vol. 1298, pp. 16–30. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  6. Antoy, S.: Constructor-based Conditional Narrowing. In: Proc. of the 3rd International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming (PPDP 2001), pp. 199–206. ACM Press, New York (2001)

    Chapter  Google Scholar 

  7. Antoy, S.: Evaluation Strategies for Functional Logic Programming. Journal of Symbolic Computation 40(1), 875–903 (2005)

    Article  Google Scholar 

  8. Antoy, S., Echahed, R., Hanus, M.: Parallel Evaluation Strategies for Functional Logic Languages. In: Proc. of the Fourteenth International Conference on Logic Programming (ICLP 1997), pp. 138–152. MIT Press, Cambridge (1997)

    Google Scholar 

  9. Antoy, S., Echahed, R., Hanus, M.: A Needed Narrowing Strategy. Journal of the ACM 47(4), 776–822 (2000)

    Article  Google Scholar 

  10. Antoy, S., Hanus, M.: Compiling Multi-Paradigm Declarative Programs into Prolog. In: Kirchner, H. (ed.) Frontiers of Combining Systems. LNCS, vol. 1794, pp. 171–185. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  11. Antoy, S., Hanus, M.: Functional Logic Design Patterns. In: Hu, Z., Rodríguez-Artalejo, M. (eds.) FLOPS 2002. LNCS, vol. 2441, pp. 67–87. Springer, Heidelberg (2002)

    Google Scholar 

  12. Antoy, S., Hanus, M.: Concurrent Distinct Choices. Journal of Functional Programming 14(6), 657–668 (2004)

    Article  MATH  Google Scholar 

  13. Antoy, S., Hanus, M.: Declarative Programming with Function Patterns. In: Hill, P.M. (ed.) LOPSTR 2005. LNCS, vol. 3901, pp. 6–22. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  14. Antoy, S., Hanus, M., Liu, J., Tolmach, A.: A Virtual Machine for Functional Logic Computations. In: Grelck, C., Huch, F., Michaelson, G.J., Trinder, P. (eds.) IFL 2004. LNCS, vol. 3474, pp. 108–125. Springer, Heidelberg (2005)

    Google Scholar 

  15. Antoy, S., Hanus, M., Massey, B., Steiner, F.: An Implementation of Narrowing Strategies. In: Proc. of the 3rd International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming (PPDP 2001), pp. 207–217. ACM Press, New York (2001)

    Chapter  Google Scholar 

  16. Antoy, S., Tolmach, A.: Typed Higher-Order Narrowing without Higher-Order Strategies. In: Middeldorp, A. (ed.) FLOPS 1999. LNCS, vol. 1722, pp. 335–352. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  17. Arenas-Sánchez, P., Rodríguez-Artalejo, M.: A Semantic Framework for Functional Logic Programming with Algebraic Polymorphic Types. In: Bidoit, M., Dauchet, M. (eds.) CAAP 1997, FASE 1997, and TAPSOFT 1997. LNCS, vol. 1214, pp. 453–464. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  18. Baader, F., Nipkow, T.: Term Rewriting and All That. Cambridge University Press, Cambridge (1998)

    Google Scholar 

  19. Berghammer, R., Fischer, S.: Implementing Relational Specifications in a Constraint Functional Logic Language. Electronic Notes in Theoretical Computer Science 177, 169–183 (2007)

    Article  Google Scholar 

  20. Bird, R.S., Wadler, P.: Introduction to Functional Programming. Prentice-Hall, Englewood Cliffs (1988)

    Google Scholar 

  21. Bonnier, S., Maluszynski, J.: Towards a Clean Amalgamation of Logic Programs with External Procedures. In: Proc. 5th Conference on Logic Programming & 5th Symposium on Logic Programming (Seattle), pp. 311–326. MIT Press, Cambridge (1988)

    Google Scholar 

  22. Braßel, B., Hanus, M., Huch, F.: Encapsulating Non-Determinism in Functional Logic Computations. Journal of Functional and Logic Programming 2004(6) (2004)

    Google Scholar 

  23. Braßel, B., Huch, F.: Translating Curry to Haskell. In: Proc. of the ACM SIGPLAN 2005 Workshop on Curry and Functional Logic Programming (WCFLP 2005), pp. 60–65. ACM Press, New York (2005)

    Google Scholar 

  24. Caballero, R., García-Ruiz, Y.: Implementing Dynamic-Cut in TOY. Electronic Notes in Theoretical Computer Science 177, 153–168 (2007)

    Article  Google Scholar 

  25. Casas, A., Cabeza, D., Hermenegildo, M.V.: A Syntactic Approach to Combining Functional Notation, Lazy Evaluation, and Higher-Order in LP Systems. In: Hagiya, M., Wadler, P. (eds.) FLOPS 2006. LNCS, vol. 3945, pp. 146–162. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  26. Cheong, P.H., Fribourg, L.: Implementation of Narrowing: The Prolog-Based Approach. In: Apt, K.R., de Bakker, J.W., Rutten, J.J.M.M. (eds.) Logic programming languages: constraints, functions, and objects, pp. 1–20. MIT Press, Cambridge (1993)

    Google Scholar 

  27. Cleva, J.M., Leach, J., López-Fraguas, F.J.: A logic programming approach to the verification of functional-logic programs. In: Proceedings of the 6th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, pp. 9–19. ACM Press, New York (2004)

    Chapter  Google Scholar 

  28. del Vado Virseda, R.: A Demand-Driven Narrowing Calculus with Overlapping Definitional Trees. In: Proceedings of the 8th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming (PPDP 2003), pp. 253–263. ACM Press, New York (2003)

    Chapter  Google Scholar 

  29. Dershowitz, N., Jouannaud, J.-P.: Rewrite Systems. In: van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, vol. B, pp. 243–320. Elsevier, Amsterdam (1990)

    Google Scholar 

  30. Fernández, A.J., Hortalá-González, M.T., Sáenz-Pérez, F.: Solving Combinatorial Problems with a Constraint Functional Logic Language. In: Dahl, V., Wadler, P. (eds.) PADL 2003. LNCS, vol. 2562, pp. 320–338. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  31. Fernández, A.J., Hortalá-González, M.T., Sáenz-Pérez, F., del Vado-Vírseda, R.: Constraint Functional Logic Programming over Finite Domains. Theory and Practice of Logic Programming (to appear, 2007)

    Google Scholar 

  32. Fischer, S.: A Functional Logic Database Library. In: Proc. of the ACM SIGPLAN 2005 Workshop on Curry and Functional Logic Programming (WCFLP 2005), pp. 54–59. ACM Press, New York (2005)

    Chapter  Google Scholar 

  33. de la Banda, M.J.G., Demoen, B., Marriott, K., Stuckey, P.J.: To the Gates of HAL: A HAL Tutorial. In: Hu, Z., Rodríguez-Artalejo, M. (eds.) FLOPS 2002. LNCS, vol. 2441, pp. 47–66. Springer, Heidelberg (2002)

    Google Scholar 

  34. Giovannetti, E., Levi, G., Moiso, C., Palamidessi, C.: Kernel LEAF: A Logic plus Functional Language. Journal of Computer and System Sciences 42(2), 139–185 (1991)

    Article  MATH  Google Scholar 

  35. Gonzáles-Moreno, J.C., Hortalá-González, M.T., Rodríguez-Artalejo, M.: Polymorphic Types in Functional Logic Programming. Journal of Functional and Logic Programming 2001(1) (2001)

    Google Scholar 

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

    Article  MATH  Google Scholar 

  37. González-Moreno, J.C., Hortalá-González, M.T., Rodríguez-Artalejo, M.: A Higher Order Rewriting Logic for Functional Logic Programming. In: Proc. of the Fourteenth International Conference on Logic Programming (ICLP 1997), pp. 153–167. MIT Press, Cambridge (1997)

    Google Scholar 

  38. Hanus, M.: The Integration of Functions into Logic Programming: From Theory to Practice. Journal of Logic Programming 19&20, 583–628 (1994)

    Article  Google Scholar 

  39. Hanus, M.: Analysis of Residuating Logic Programs. Journal of Logic Programming 24(3), 161–199 (1995)

    Article  Google Scholar 

  40. Hanus, M.: Efficient Translation of Lazy Functional Logic Programs into Prolog. In: Proietti, M. (ed.) LOPSTR 1995. LNCS, vol. 1048, pp. 252–266. Springer, Heidelberg (1996)

    Google Scholar 

  41. Hanus, M.: A Unified Computation Model for Functional and Logic Programming. In: Proc. of the 24th ACM Symposium on Principles of Programming Languages (Paris), pp. 80–93 (1997)

    Google Scholar 

  42. Hanus, M.: Distributed Programming in a Multi-Paradigm Declarative Language. In: Nadathur, G. (ed.) PPDP 1999. LNCS, vol. 1702, pp. 376–395. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  43. Hanus, M.: A Functional Logic Programming Approach to Graphical User Interfaces. In: Pontelli, E., Santos Costa, V. (eds.) PADL 2000. LNCS, vol. 1753, pp. 47–62. Springer, Heidelberg (2000)

    Google Scholar 

  44. Hanus, M.: High-Level Server Side Web Scripting in Curry. In: Ramakrishnan, I.V. (ed.) PADL 2001. LNCS, vol. 1990, pp. 76–92. Springer, Heidelberg (2001)

    Google Scholar 

  45. Hanus, M.: Reduction Strategies for Declarative Programming. In: Gramlich, B., Lucas, S. (eds.) Electronic Notes in Theoretical Computer Science, vol. 57, Elsevier Science Publishers, Amsterdam (2001)

    Google Scholar 

  46. Hanus, M.: CurryDoc: A Documentation Tool for Declarative Programs. In: Proc. 11th International Workshop on Functional and (Constraint) Logic Programming (WFLP 2002) Research Report UDMI/18/2002/RR, University of Udine, pp. 225–228 (2002)

    Google Scholar 

  47. Hanus, M.: Dynamic Predicates in Functional Logic Programs. Journal of Functional and Logic Programming, 2004(5) (2004)

    Google Scholar 

  48. Hanus, M.: A Generic Analysis Environment for Declarative Programs. In: Proc. of the ACM SIGPLAN 2005 Workshop on Curry and Functional Logic Programming (WCFLP 2005), pp. 43–48. ACM Press, New York (2005)

    Chapter  Google Scholar 

  49. Hanus, M.: Type-Oriented Construction of Web User Interfaces. In: Proceedings of the 8th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming (PPDP 2006), pp. 27–38. ACM Press, New York (2006)

    Google Scholar 

  50. Hanus, M., Höppner, K.: Programming Autonomous Robots in Curry. Electronic Notes in Theoretical Computer Science, 76 (2002)

    Google Scholar 

  51. Hanus, M., Höppner, K., Huch, F.: Towards Translating Embedded Curry to C. Electronic Notes in Theoretical Computer Science, 86(3) (2003)

    Google Scholar 

  52. Hanus, M., Huch, F.: An Open System to Support Web-based Learning. In: Proc. 12th International Workshop on Functional and (Constraint) Logic Programming (WFLP 2003) Technical Report DSIC-II/13/03, Universidad Politécnica de Valencia, pp. 269–282 (2003)

    Google Scholar 

  53. Hanus, M., Huch, F., Niederau, P.: An Object-Oriented Extension of the Declarative Multi-Paradigm Language Curry. In: Mohnen, M., Koopman, P. (eds.) IFL 2000. LNCS, vol. 2011, pp. 89–106. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  54. Hanus, M., Koj, J.: An Integrated Development Environment for Declarative Multi-Paradigm Programming. In: Proc. of the International Workshop on Logic Programming Environments (WLPE 2001), Paphos (Cyprus), Also available from the Computing Research Repository (CoRR) pp. 1–14 (2001), at http://arXiv.org/abs/cs.PL/0111039

  55. Hanus, M., Prehofer, C.: Higher-Order Narrowing with Definitional Trees. Journal of Functional Programming 9(1), 33–75 (1999)

    Article  MATH  Google Scholar 

  56. Hanus, M., Sadre, R.: An Abstract Machine for Curry and its Concurrent Implementation in Java. Journal of Functional and Logic Programming, 1999(6) (1999)

    Google Scholar 

  57. Hanus, M., Steiner, F.: Controlling Search in Declarative Programs. In: Palamidessi, C., Meinke, K., Glaser, H. (eds.) ALP 1998 and PLILP 1998. LNCS, vol. 1490, pp. 374–390. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  58. Hanus, M. (ed.): Curry: An Integrated Functional Logic Language (Vers. 0.8.2) (2006), Available at http://www.informatik.uni-kiel.de/~curry

  59. Hughes, J.: Why Functional Programming Matters. In: Turner, D.A. (ed.) Research Topics in Functional Programming, pp. 17–42. Addison-Wesley, Reading (1990)

    Google Scholar 

  60. Hussmann, H.: Nondeterministic Algebraic Specifications and Nonconfluent Term Rewriting. Journal of Logic Programming 12, 237–255 (1992)

    Article  MATH  Google Scholar 

  61. Jaffar, J., Lassez, J.-L.: Constraint Logic Programming. In: Proc. of the 14th ACM Symposium on Principles of Programming Languages, Munich, pp. 111–119 (1987)

    Google Scholar 

  62. Jiménez-Martin, J.A., Marino-Carballo, J., Moreno-Navarro, J.J.: Efficient Compilation of Lazy Narrowing into Prolog. In: Proc. Int. Workshop on Logic Program Synthesis and Transformation (LOPSTR 1992) Springer Workshops in Computing Series, pp. 253–270 (1992)

    Google Scholar 

  63. Lloyd, J.: Programming in an Integrated Functional and Logic Language. Journal of Functional and Logic Programming, 3, 1–49 (1999)

    Google Scholar 

  64. Loogen, R., López Fraguas, F., Rodríguez Artalejo, M.: A Demand Driven Computation Strategy for Lazy Narrowing. In: Penjam, J., Bruynooghe, M. (eds.) PLILP 1993. LNCS, vol. 714, pp. 184–200. Springer, Heidelberg (1993)

    Google Scholar 

  65. Loogen, R., Winkler, S.: Dynamic Detection of Determinism in Functional Logic Languages. Theoretical Computer Science 142, 59–87 (1995)

    Article  MATH  Google Scholar 

  66. López-Fraguas, F., Sánchez-Hernández, J.: TOY: A Multiparadigm Declarative System. In: Narendran, P., Rusinowitch, M. (eds.) RTA 1999. LNCS, vol. 1631, pp. 244–247. Springer, Heidelberg (1999)

    Google Scholar 

  67. López-Fraguas, F.J., Rodríguez-Artalejo, M., del Vado Virseda, R.: A lazy narrowing calculus for declarative constraint programming. In: Proceedings of the 6th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, pp. 43–54. ACM Press, New York (2004)

    Chapter  Google Scholar 

  68. López-Fraguas, F.J., Sánchez-Hernández, J.: A Proof Theoretic Approach to Failure in Functional Logic Programming. Theory and Practice of Logic Programming 4(1), 41–74 (2004)

    Article  MATH  Google Scholar 

  69. Lux, W.: Implementing Encapsulated Search for a Lazy Functional Logic Language. In: Middeldorp, A. (ed.) FLOPS 1999. LNCS, vol. 1722, pp. 100–113. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  70. Lux, W.: Adding Linear Constraints over Real Numbers to Curry. In: Kuchen, H., Ueda, K. (eds.) FLOPS 2001. LNCS, vol. 2024, pp. 185–200. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  71. Naish, L.: Adding equations to NU-Prolog. In: Małuszyński, J., Wirsing, M. (eds.) PLILP 1991. LNCS, vol. 528, pp. 15–26. Springer, Heidelberg (1991)

    Google Scholar 

  72. O’Donnell, M.J.: Computing in Systems Described by Equations. LNCS, vol. 58. Springer, Heidelberg (1977)

    MATH  Google Scholar 

  73. O’Donnell, M.J.: Equational Logic as a Programming Language. MIT Press, Cambridge (1985)

    MATH  Google Scholar 

  74. Padawitz, P.: Computing in Horn Clause Theories. EATCS Monographs on Theoretical Computer Science, vol. 16. Springer, Heidelberg (1988)

    MATH  Google Scholar 

  75. Peyton Jones, S. (ed.): Haskell 98 Language and Libraries—The Revised Report. Cambridge University Press, Cambridge (2003)

    Google Scholar 

  76. Reynolds, J.C.: Definitional Interpreters for Higher-Order Programming Languages. In: Proceedings of the ACM Annual Conference, pp. 717–740. ACM Press, New York (1972)

    Chapter  Google Scholar 

  77. Rodríguez-Artalejo, M.: Functional and Constraint Logic Programming. In: Comon, H., Marché, C., Treinen, R. (eds.) Constraints in Computational Logics. Theory and Applications. LNCS, vol. 2002, pp. 202–270. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  78. Saraswat, V.A.: Concurrent Constraint Programming. MIT Press, Cambridge (1993)

    Google Scholar 

  79. Schulte, C., Smolka, G.: Encapsulated Search for Higher-Order Concurrent Constraint Programming. In: Proc. of the 1994 International Logic Programming Symposium, pp. 505–520. MIT Press, Cambridge (1994)

    Google Scholar 

  80. Sekar, R.C., Ramakrishnan, I.V.: Programming in Equational Logic: Beyond Strong Sequentiality. Information and Computation 104(1), 78–109 (1993)

    Article  MATH  Google Scholar 

  81. Slagle, J.R.: Automated Theorem-Proving for Theories with Simplifiers, Commutativity, and Associativity. Journal of the ACM 21(4), 622–642 (1974)

    Article  MATH  Google Scholar 

  82. Smolka, G.: The Oz Programming Model. In: van Leeuwen, J. (ed.) Computer Science Today. LNCS, vol. 1000, pp. 324–343. Springer, Heidelberg (1995)

    Chapter  Google Scholar 

  83. Somogyi, Z., Henderson, F., Conway, T.: The execution algorithm of Mercury, an efficient purely declarative logic programming language. Journal of Logic Programming 29(1-3), 17–64 (1996)

    Article  MATH  Google Scholar 

  84. Van Roy, P., Haridi, S.: Concepts, Techniques, and Models of Computer Programming. MIT Press, Cambridge (2004)

    Google Scholar 

  85. Van Roy, P., Haridi, S., Brand, P., Smolka, G., Mehl, M., Scheidhauer, R.: Mobile Objects in Distributed Oz. ACM Transactions on Programming Languages and Systems 19(5), 804–851 (1997)

    Article  Google Scholar 

  86. Wadler, P.: How to Declare an Imperative. ACM Computing Surveys 29(3), 240–263 (1997)

    Article  Google Scholar 

  87. Warren, D.H.D.: Higher-order extensions to PROLOG: are they needed. Machine Intelligence 10, 441–454 (1982)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Véronica Dahl Ilkka Niemelä

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hanus, M. (2007). Multi-paradigm Declarative Languages. In: Dahl, V., Niemelä, I. (eds) Logic Programming. ICLP 2007. Lecture Notes in Computer Science, vol 4670. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74610-2_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-74610-2_5

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-74608-9

  • Online ISBN: 978-3-540-74610-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics