Skip to main content

Multiparadigm logic programming

  • Conference paper
  • First Online:

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

Abstract

A theory of general logics is outlined as a basis for an axiomatic notion of “logic programming language.” It is shown that a wide variety of logical programming languages are instances of the general notion. The problem of designing multiparadigm logic programming languages that overcome the present limitations faced by relational and functional logical languages in dealing with state change and reactive systems is approached by a method based on the use of the axiomatic notion of logic programming language and of mappings between logics to guide the search for a logic in which the desired multiparadigm integration can be attained. Following this method, rewriting logic is proposed as a logic in which the functional, relational, and concurrent object-oriented paradigms can be unified in a simple and rigorous way. Two languages based on this logic, Maude and MaudeLog, are briefly described and illustrated with examples.

Supported by Office of Naval Research Contracts N00014-90-C-0086 and N00014-88-C-0618, and by the Information Technology Promotion Agency, Japan, as a part of the R & D of Basic Technology for Future Industries “New Models for Software Architecture” sponsored by NEDO (New Energy and Industrial Technology Development Organization).

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. Agha. Actors. MIT Press, 1986.

    Google Scholar 

  2. G. Agha. Concurrent object-oriented programming. Communications of the Association for Computing Machinery, 33:125–141, September 1990.

    Google Scholar 

  3. G. Agha and C. Hewitt. Concurrent programming using actors. In A. Yonezawa and M. Tokoro, editors, Object-Oriented Concurrent Programming, pages 37–53. MIT Press, 1988.

    Google Scholar 

  4. G. Agha, P. Wegner, and A. Yonezawa, editors. Proceedings of the ACM-SIGPLAN Workshop on Object-Based Concurrent Programming. ACM Sigplan Notices, April 1989.

    Google Scholar 

  5. Jean-Marc Andreoli and Remo Pareschi. LO and behold! Concurrent structured processes. In ECOOP-OOPSLA'90 Conference on Object-Oriented Programming, Ottawa, Canada, October 1990, pages 44–56. ACM, 1990.

    Google Scholar 

  6. M. Barr and C. Wells. Toposes, Triples and Theories. Springer-Verlag, 1985.

    Google Scholar 

  7. Jan Bergstra and John Tucker. Characterization of computable data types by means of a finite equational specification method. In J. W. de Bakker and J. van Leeuwen, editors, Automata, Languages and Programming, Seventh Colloquium, pages 76–90. Springer-Verlag, 1980. LNCS, Volume 81.

    Google Scholar 

  8. Gérard Berry and Gérard Boudol. The Chemical Abstract Machine. In Proc. POPL'90, pages 81–94. ACM, 1990.

    Google Scholar 

  9. R. Burstall and B. Lampson. A kernel language for abstract data types and modules. In G. Kahn, D.B. MacQueen, and G.D. Plotkin, editors, Semantics of Data Types, pages 1–50. Springer LNCS 173, 1984.

    Google Scholar 

  10. L. Cardelli. A polymorphic λ-calculus with Type:Type. Technical Report 10, DEC System Research Center, Palo Alto, CA, 1986.

    Google Scholar 

  11. L. Cardelli. A Quest Preview. Technical report, DEC System Research Center, Palo Alto, Ca, 1988.

    Google Scholar 

  12. J. Cartmell. Generalised algebraic theories and contextual categories. Annals Pure Appl. Logic, 32:209–243, 1986.

    Google Scholar 

  13. K. Mani Chandy and Jayadev Misra. Parallel Program Design: A Foundation. Addison-Wesley, 1988.

    Google Scholar 

  14. A. Colmerauer, H. Kanoui, and M. van Caneghem. Etude et réalisation d'un système Prolog. Technical report, Groupe d'Intelligence Artificielle, U.E.R. de Luminy, Université d'Aix-Marseille II, 1979.

    Google Scholar 

  15. G. Cousineau, P.-L. Curien, and M. Mauny. The categorical abstract machine. Science of Computer Programming, 8:173–202, 1987.

    Google Scholar 

  16. Pierre-Louis Curien. Categorical Combinators, Sequential Algorithms and Functional Programming. Pitman, London, 1986.

    Google Scholar 

  17. Ole-Johan Dahl, B. Myhrhaug, and Kristen Nygaard. The simula 67 common base language. Technical report, Norwegian Computing Center, Oslo, 1970. Publication S-22.

    Google Scholar 

  18. John Darlington and Yike Guo. Constrained equational deduction. Technical report, Dept. of Computing, Imperial College, June 1990.

    Google Scholar 

  19. N. Dershowitz and J.-P. Jouannaud. Rewrite systems. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, Vol. B, pages 243–320. North-Holland, 1990.

    Google Scholar 

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

    Google Scholar 

  21. Nachum Dershowitz and David A. Plaisted. Equational programming. In J. Richards, editor, Machine Intelligence 11: The logic and acquisition of knowledge, pages 21–56. Oxford University Press, 1988.

    Google Scholar 

  22. J. Fiadeiro and A. Sernadas. Structuring theories on consequence. In D. Sannella and A. Tarlecki, editors, Recent Trends in Data Type Specification, pages 44–72. Springer LNCS 332, 1988.

    Google Scholar 

  23. Laurent Fribourg. Oriented equational clauses as a programming language. Journal of Logic Programming, 1(2):179–210, 1984.

    Google Scholar 

  24. Kokichi Futatsugi, Joseph Goguen, Jean-Pierre Jouannaud, and José Meseguer. Principles of OBJ2. In Brian Reid, editor, Proceedings of 12th ACM Symposium on Principles of Programming Languages, pages 52–66. ACM, 1985.

    Google Scholar 

  25. Jean-Yves Girard. Interprétation Fonctionelle et Élimination des Coupures dans l'Arithmétique d'ordre Supérieure. PhD thesis, Univ. Paris VII, 1972.

    Google Scholar 

  26. Jean-Yves Girard. Linear Logic. Theoretical Computer Science, 50:1–102, 1987.

    Google Scholar 

  27. Jean-Yves Giraid. Towards a geometry of interaction. In J.W. Gray and A. Scedrov, editors, Proc. AMS Summer Research Conference on Categories in Computer Science and Logic, Boulder, Colorado, June 1987, pages 69–108. American Mathematical Society, 1989.

    Google Scholar 

  28. J.A. Goguen, T. Winkler, J. Meseguer, K. Futatsugi, and J.-P. Jouannaud. Introducing OBJ. Technical report, Computer Science Laboratory, SRI International, 1992. To appear in J.A. Goguen, D. Coleman and R. Gallimore, editors, Applications of Algebraic Specification Using OBJ, Cambridge University Press.

    Google Scholar 

  29. Joseph Goguen. Abstract errors for abstract data types. In Peter Neuhold, editor, Proceedings of First IFIP Working Conference on Formal Description of Programming Concepts, pages 21.1–21.32. MIT, 1977. Also published in Formal Description of Programming Concepts, Peter Neuhold, Ed., North-Holland, pages 491–522, 1979.

    Google Scholar 

  30. Joseph Goguen. Some design principles and theory for OBJ-0, a language for expressing and executing algebraic specifications of programs. In Edward Blum, Manfred Paul, and Satsoru Takasu, editors, Proceedings, Mathematical Studies of Information Processing, pages 425–473. Springer-Verlag, 1979. LNCS, Volume 75; Proceedings of a Workshop held August 1978.

    Google Scholar 

  31. Joseph Goguen and Rod Burstall. Institutions: Abstract model theory for specification and programming. Journal of the ACM, 39(1):95–146, 1992.

    Google Scholar 

  32. Joseph Goguen, Jean-Pierre Jouannaud, and José Meseguer. Operational semantics of order-sorted algebra. In W. Brauer, editor, Proceedings, 1985 International Conference on Automata, Languages and Programming, pages 221–231. Springer-Verlag, 1988. LNCS, Volume 194.

    Google Scholar 

  33. Joseph Goguen, Claude Kirchner, Hélène Kirchner, Aristide Mégrelis, José Meseguer, and Timothy Winkler. An introduction to OBJ3. In Jean-Pierre Jouannaud and Stephane Kaplan, editors, Proceedings, Conference on Conditional Term Rewriting, Orsay, France, July 8–10, 1987, pages 258–263. Springer LNCS 308, 1988.

    Google Scholar 

  34. Joseph Goguen and José Meseguer. Equality, types, modules and generics for logic programming. In S.-A. Tärnlund, editor, Proc. 2nd Intl. Logic Programming Conf., Uppsala, July 2–6, 1984, pages 115–125. Uppsala University, 1984.

    Google Scholar 

  35. Joseph Goguen and José Meseguer. Eqlog: Equality, types, and generic modules for logic programming. In Douglas DeGroot and Gary Lindstrom, editors, Logic Programming: Functions, Relations and Equations, pages 295–363. Prentice-Hall, 1986. An earlier version appears in Journal of Logic Programming, Volume 1, Number 2, pages 179–210, September 1984.

    Google Scholar 

  36. Joseph Goguen and José Meseguer. Models and equality for logical programming. In Hartmut Ehrig, Giorgio Levi, Robert Kowalski, and Ugo Montanari, editors, Proceedings, 1987 TAPSOFT, pages 1–22. Springer-Verlag, 1987. LNCS, Volume 250; extended version to appear in J. Logic Programming.

    Google Scholar 

  37. Joseph Goguen and José Meseguer. Unifying functional, object-oriented and relational programming with logical semantics. In Bruce Shriver and Peter Wegner, editors, Research Directions in Object-Oriented Programming, pages 417–477. MIT Press, 1987. Preliminary version in SIGPLAN Notices, Volume 21, Number 10, pages 153–162, October 1986; also, Technical Report CSLI-87-93, Center for the Study of Language and Information, Stanford University, March 1987.

    Google Scholar 

  38. Joseph Goguen and José Meseguer. Order-sorted algebra I: Equational deduction for multiple inheritance, overloading, exceptions and partial operations. Technical Report SRI-CSL-89-10, SRI International, Computer Science Laboratory, July 1989. Given as lecture at Seminar on. Types, Carnegie-Mellon University, June 1983. Submitted for publication.

    Google Scholar 

  39. Joseph Goguen, James Thatcher, and Eric Wagner. An initial algebra approach to the specification, correctness and implementation of abstract data types. Technical Report RC 6487, IBM T. J. Watson Research Center, October 1976. Appears in Current Trends in Programming Methodology, IV, Raymond Yeh, Ed., Prentice-Hall, 1978, pages 80–149.

    Google Scholar 

  40. R. Harper, F. Honsell, and G. Plotkin. A framework for defining logics. In Proceedings, Second Symposium on Logic in Computer Science, pages 194–204. IEEE Computer Society Press, 1987.

    Google Scholar 

  41. R. Harper, D. Sannella, and A. Tarlecki. Structure and representation in LF. In Proc. LICS'89, pages 226–237. IEEE, 1989.

    Google Scholar 

  42. Robert Harper, David MacQueen, and Robin Milner. Standard ML. Technical Report ECS-LFCS-86-2, Dept. of Computer Science, University of Edinburgh, 1986.

    Google Scholar 

  43. Christoph M. Hoffmann and Michael O'Donnell. Programming with equations. Transactions on Programming Languages and Systems, 1(4):83–112, 1982.

    Google Scholar 

  44. Steffen Höldobler. Conditional equational theories and complete sets of transformations. Theoretical Computer Science, 75:85–110, 1990.

    Google Scholar 

  45. Gerard Huet. Confluent reductions: Abstract properties and applications to term rewriting systems. Journal of the Association for Computing Machinery, 27:797–821, 1980. Preliminary version in 18th Symposium on Mathematical Foundations of Computer Science, 1977.

    Google Scholar 

  46. Jean-Marie Hullot. Canonical forms and unification. In Wolfgang Bibel and Robert Kowalski, editors, Proceedings, Fifth Conference on Automated Deduction, pages 318–334. Springer-Verlag, 1980. LNCS, Volume 87.

    Google Scholar 

  47. H. Hussmann. Unification in conditional equational theories. In B.F. Caviness, editor, Proc. EUROCAL 2, pages 543–553. Springer LNCS, Vol. 204, 1985.

    Google Scholar 

  48. J.M.E. Hyland and A. Pitts. The theory of constructions: Categorical semantics and topostheoretic models. In J.W. Gray and A. Scedrov, editors, Proc. AMS Summer Research Conference on Categories in Computer Science and Logic, Boulder, Colorado, June 1987, pages 137–199. American Mathematical Society, 1988.

    Google Scholar 

  49. Claude Kirchner, Hélène Kirchner, and José Meseguer. Operational semantics of OBJ3. In T. Lepistö and A. Salomaa, editors, Proceedings, 15th Intl. Coll. on Automata, Languages and Programming, Tampere, Finland, July 11–15, 1988, pages 287–301. Springer-Verlag, LNCS No. 317, 1988.

    Google Scholar 

  50. Robert Kowalski. Logic for problem solving. Technical Report DCL Memo 75, Department of Artificial Intelligence, University of Edinburgh, 1974. Also, a book in the Artificial Intelligence Series, North-Holland Press, 1979.

    Google Scholar 

  51. J. Lambek and P.J. Scott. Introduction to Higher Order Categorical Logic. Cambridge Univ. Press, 1986.

    Google Scholar 

  52. Saunders MacLane. Categories for the working mathematician. Springer-Verlag, 1971.

    Google Scholar 

  53. J.A. Makowski. Why Horn formulas matter in computer science: Initial structures and generic examples. Technical Report 329, C.S. Dept, Technion, July 1984.

    Google Scholar 

  54. Narciso Martí-Oliet and José Meseguer. Inclusions and subtypes. Technical Report SRI-CSL-90-16, SRI International, Computer Science Laboratory, December 1990. Submitted for publication.

    Google Scholar 

  55. Narciso Martí'-Oliet and José Meseguer. From Petri nets to linear logic through categories: a survey. Intl. J. of Foundations of Comp. Sci., 2(4):297–399, 1991.

    Google Scholar 

  56. P. Martin-Löf. An Intuitionistic Theory of Types: Predicative Part. In H.E. Rose and J.C. Shepherdson, editors, Logic Colloquium'73, pages 73–118. Noth-Holland, 1973.

    Google Scholar 

  57. P. Martin-Löf. Intuitionistic Type Theory. Bibliopolis, 1984.

    Google Scholar 

  58. Satoshi Matsuoka, Ken Wakita, and Akinori Yonezawa. Inheritance anomaly in object-oriented concurrent programming languages. Dept. of Information Science, University of Tokyo, January 1991.

    Google Scholar 

  59. Brian H. Mayoh. Galleries and institutions. Technical Report DAIMI PB-191, Computer Science Dept., Aarhus University, 1985.

    Google Scholar 

  60. J. Meseguer. Relating Models of Polymorphism. In Proc. POPL'89, pages 228–241. ACM, 1989.

    Google Scholar 

  61. José Meseguer. General logics. In H.-D. Ebbinghaus et al., editor, Logic Colloquium'87, pages 275–329. North-Holland, 1989.

    Google Scholar 

  62. José Meseguer. A logical theory of concurrent objects. In ECOOP-OOPSLA'90 Conference on Object-Oriented Programming, Ottawa, Canada, October 1990, pages 101–115. ACM, 1990.

    Google Scholar 

  63. José Meseguer. Rewriting as a unified model of concurrency. In Proceedings of the Concur'90 Conference, Amsterdam, August 1990, pages 384-400. Springer LNCS 458, 1990.

    Google Scholar 

  64. José Meseguer. Rewriting as a unified model of concurrency. Technical Report SRI-CSL-90-02, SRI International, Computer Science Laboratory, February 1990. Revised June 1990.

    Google Scholar 

  65. José Meseguer. Conditional rewriting logic as a unified model of concurrency. Theoretical Computer Science, 96(1):73–155, 1992. Also, SRI International, Computer Science Laboratory technical report SRI-CSL-91-05, February, 1991.

    Google Scholar 

  66. José Meseguer. A logical theory of concurrent objects and its realization in the Maude language. To appear in G. Agha, P. Wegner, and A. Yonezawa (eds.) Research Directions in Object-Based Concurrency, 1992.

    Google Scholar 

  67. José Meseguer and Joseph Goguen. Initiality, induction and computability. In Maurice Nivat and John Reynolds, editors, Algebraic Methods in Semantics, pages 459–541. Cambridge University Press, 1985.

    Google Scholar 

  68. José Meseguer, Joseph Goguen, and Gert Smolka. Order-sorted unification. J. Symbolic Computation, 8:383–413, 1989.

    Google Scholar 

  69. José Meseguer and Ugo Montanari. Petri nets are monoids: A new algebraic foundation for net theory. In Proc. LICS'88, pages 155–164. IEEE, 1988.

    Google Scholar 

  70. José Meseguer and Ugo Montanari. Petri nets are monoids. Information and Computation, 88:105–155, 1990. Appeared as SRI Tech Report SRI-CSL-88-3, January 1988.

    Google Scholar 

  71. José Meseguer and Timothy Winkler. Parallel Programming in Maude. In J.-P. Banâtre and D. Le Mètayer, editors, Research Directions in High-level Parallel Programming Languages, pages 253–293. Springer-Verlag, 1992. LNCS, Volume 574; also, SRI Technical Report SRI-CSL-91-08, November 1991.

    Google Scholar 

  72. Dale Miller. A logic programming language with lambda-abstraction, function variables, and simple unification. In P. Schroeder-Heister, editor, Extensions of Logic Programming, pages 253–281. Springer-Verlag, 1990. LNCS, Volume 475.

    Google Scholar 

  73. Robin Milner. Communication and Concurrency. Prentice Hall, 1989.

    Google Scholar 

  74. Werner Nutt, Pierre Réty, and Gert Smolka. Basic narrowing revisited. J. Symbolic Computation, 7:295–317, 1989.

    Google Scholar 

  75. Michael J. O'Donnell. Computing in Systems Described by Equations. Springer-Verlag LNCS 58, 1977.

    Google Scholar 

  76. Michael J. O'Donnell. Equational Logic as a Programming Language. MIT Press, 1985.

    Google Scholar 

  77. M. Papathomas. Concurrency issues in object-oriented programming languages. In D. Tsichritzis, editor, Object Oriented Development, pages 207–246. Université de Geneve, 1989.

    Google Scholar 

  78. J.C. Reynolds. Towards a Theory of Type Structure. In B. Robinet, editor, Programming Symposium, pages 408–425. Springer LNCS 19, 1974.

    Google Scholar 

  79. Vijay Saraswat. Concurrent constraint programming languages. PhD thesis, Computer Science Department, Carnegie-Mellon University, 1989.

    Google Scholar 

  80. D. Scott. Completeness and axiomatizability in many-valued logic. In L. Henkin et al., editor, Proc. Tarski Symp., pages 411–435. AMS, 1974.

    Google Scholar 

  81. R.A.G. Seely. Locally cartesian closed categories and type theory. Math. Proc. Camb. Phil. Soc., 95:33–48, 1984.

    Google Scholar 

  82. R.A.G. Seely. Categorical semantics for higher order polymorphic lambda calculus. J. Symbol Logic, 52(4):969–989, 1987.

    Google Scholar 

  83. E. Shapiro. The family of concurrent logic programming languages. ACM Computing Surveys, 21:413–510, 1989.

    Google Scholar 

  84. P. Taylor. Recursive Domains, Indexed Category Theory and Polymorphism. PhD thesis, Mathematics Department, University of Cambridge, 1987.

    Google Scholar 

  85. Maarten H. van Emden and Robert A. Kowalski. The semantics of predicate logic as a programming language. Journal of the Association for Computing Machinery, 23(4):733–742, 1976.

    Google Scholar 

  86. Maarten H. van Emden and Keitaro Yukawa. Equational logic programming. Technical Report CS-86-05, University of Waterloo, March 1986.

    Google Scholar 

  87. H. Volger. Completeness theorem for logical categories. In F.W. Lawvere, C. Maurer, and G.C. Wraith, editors, Model Theory and Topoi. Springer Lecture Notes in Mathematics No. 445, 1975.

    Google Scholar 

  88. Peter Wegner. Concepts and paradigms of object-oriented programming. OOPS Messenger, 1:7–87, 1990.

    Google Scholar 

  89. A. Yonezawa and M. Tokoro, editors. Object-Oriented Concurrent Programming. MIT Press, 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hélène Kirchner Giorgio Levi

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Meseguer, J. (1992). Multiparadigm logic programming. In: Kirchner, H., Levi, G. (eds) Algebraic and Logic Programming. ALP 1992. Lecture Notes in Computer Science, vol 632. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0013826

Download citation

  • DOI: https://doi.org/10.1007/BFb0013826

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-55873-6

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics