Skip to main content

Logic programming: The foundations, the approach and the role of concurrency

  • Chapter
  • First Online:
Current Trends in Concurrency

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

Abstract

This paper is an introduction to the problem of defining the semantics of concurrency in logic programming. The standard semantics of logic programming languages is treated in the first two sections. The unique features of logic programming are then discussed on some examples in typical applications areas. The process interpretation of logic programs and some parallel operational models are considered next. Finally, concurrent logic languages are introduced, by discussing some examples in Concurrent Prolog and the semantics of two relevant mechanisms of concurrent logic languages, i.e. perpetual processes and read-only variables.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

7. References

  1. S. Abramsky, Reasoning about concurrent systems (1984).

    Google Scholar 

  2. H. Andreka, M.H. van Emden, I. Nemeti and J. Tiuryn, Infinite-term semantics for logic programs. Draft manuscript (1983).

    Google Scholar 

  3. K.R. Apt and M.H. van Emden, Contributions to the theory of logic programming. J. ACM 29 (1982), 841–862.

    Google Scholar 

  4. R. Barbuti, M. Bellia, G. Levi and M. Martelli, On the integration of logic programming and functional programming. Proc. 1984 Int. Symp. on Logic Programming (IEEE Comp. Society Press, 1984), 160–166.

    Google Scholar 

  5. R. Barbuti, M. Bellia, G. Levi and M. Martelli, LEAF: A language which integrates logic, equations and functions. In Logic Programming: Functions, Relations and Equations, D. DeGroot and G. Lindstrom, Eds. (Prentice-Hall, 1985).

    Google Scholar 

  6. M. Bellia, E. Dameri, P. Degano, G. Levi and M. Martelli, Applicative communicating processes in first order logic. Proc. 5th Int. Symp. on Programming, LNCS 137 (Springer Verlag, 1982), 1–14.

    Google Scholar 

  7. M. Bellia and G. Levi, The relation between logic and functional languages: A survey. Techn. Rept. University of Pisa, Dipartimento di Informatica (July 1985).

    Google Scholar 

  8. K.A. Bowen and R.A. Kowalski, Amalgamating language and metalanguage in logic programming. In Logic Programming, K.L. Clark and S.-A. Tarnlund, Eds. (Academic Press, 1982), 153–172.

    Google Scholar 

  9. R.M. Burstall, D.B. MacQueen and D.T. Sannella, HOPE: An experimental applicative language. Conference Record of the 1980 LISP Conference (1980), 136–143.

    Google Scholar 

  10. C.L. Chang and R.T.C. Lee, Symbolic Logic and Mechanical Theorem Proving (Academic Press, 1971).

    Google Scholar 

  11. K.L. Clark and S. Gregory, A relational language for parallel programming. Proc. ACM Conf. on Functional Programming Languages and Computer Architecture (1981), 171–178.

    Google Scholar 

  12. K.L. Clark and S. Gregory, PARLOG: a parallel logic programming language. Imperial College Research Report 83/5 (May 1983).

    Google Scholar 

  13. W.F. Clocksin and C.S. Mellish, Programming in PROLOG (Springer Verlag, 1981).

    Google Scholar 

  14. J.S. Conery and D.F. Kibler, Parallel interpretation of logic programs. Proc. ACM Conf. on Functional Programming Languages and Computer Architecture (1981), 163–170.

    Google Scholar 

  15. M.H. van Emden and R.A. Kowalski, The semantics of predicate logic as a programming language. J. ACM 23 (1976), 733–742.

    Google Scholar 

  16. M.H. van Emden and G.T. de Lucena Filho, Predicate logic as a language for parallel programming. In Logic Programming, K.L. Clark and S.-A. Tarnlund, Eds. (Academic Press, 1982), 189–198.

    Google Scholar 

  17. M. Falaschi, G. Levi and C. Palamidessi, On the fixed-point semantics of Horn clauses with infinite terms. Proc. Logic Programming Workshop 83 (1983), 474–484.

    Google Scholar 

  18. M. Falaschi, G. Levi and C. Palamidessi, A synchronization logic: Axiomatics and formal semantics of generalized Horn clauses. Information and Control 60 (1984), 36–69.

    Google Scholar 

  19. M. Falaschi, G. Levi and C. Palamidessi, The formal semantics of processes and streams in logic programming. Colloquia Mathematica Societatis Janos Bolyai 42 (1985).

    Google Scholar 

  20. J.A. Goguen and J.J. Tardo, An introduction to OBJ: A language for writing and testing formal algebraic program specifications. Proc. IEEE Conf. on Specifications of Reliable Software (1979), 179–189.

    Google Scholar 

  21. J.A. Goguen and J. Meseguer, Equality, types, modules and (why not?) generics for logic programming. J. Logic Programming 1 (1984), 179–210.

    Google Scholar 

  22. M. Gordon, R. Milner and C. Wadsworth, Edinburgh LCF. LNCS 78 (Springer Verlag, 1979).

    Google Scholar 

  23. A. Hansson, S. Haridi and S.-A. Tarnlund, Properties of a logic programming language. In Logic Programming, K.L. Clark and S.-A. Tarnlund, Eds. (Academic Press, 1982), 267–280.

    Google Scholar 

  24. P. Henderson, Purely functional operating systems. In Functional Programming, J. Darlington, P. Henderson and D. Turner, Eds., (Cambridge University Press, 1982).

    Google Scholar 

  25. G. Kahn and D. Mac Queen, Coroutines and networks of parallel processes. Information Processing 77 (North-Holland, 1977), 993–998.

    Google Scholar 

  26. R.A. Kowalski, Predicate logic as a programming language. Information Processing 74 (North-Holland, 1974), 569–574.

    Google Scholar 

  27. R.A. Kowalski, Algorithm=Logic+Control. Comm. ACM 22 (1979), 424–431.

    Google Scholar 

  28. R.A. Kowalski, Logic for problem solving (North Holland, 1979).

    Google Scholar 

  29. G. Levi and A. Pegna, Top-down mathematical semantics and symbolic execution. RAIRO Informatique Theorique 17 (1983), 55–70.

    Google Scholar 

  30. G. Levi and C. Palamidessi, The declarative semantics of logical read-only variables. Proc. 1985 Symp. on Logic Programming (IEEE Comp. Society Press, 1985), 128–137.

    Google Scholar 

  31. J.W. Lloyd, Foundations of logic programming (Springer-Verlag, 1984).

    Google Scholar 

  32. R. Milner, A proposal for Standard ML. ACM Symp. LISP and Functional Programming (1984), 184–197.

    Google Scholar 

  33. L. Monteiro, An extension to Horn clause logic allowing the definition of concurrent processes. Proc. Int'l Coll. on Formalization of Programming Concepts, LNCS 107 (Springer-Verlag, 1981).

    Google Scholar 

  34. L. Monteiro, A proposal for distributed programming in logic. In Implementations of PROLOG, J.A. Campbell, Ed. (Ellis Horwood, 1984).

    Google Scholar 

  35. L.M. Pereira and R. Nasr, Delta-Prolog: A distributed logic programming language. Proc. Int'l Conf. on Fifth Generation Computer Systems (1984), 283–291.

    Google Scholar 

  36. U.S. Reddy, Narrowing as the operational semantics of functional languages. Proc. 1985 Symp. on Logic Programming (IEEE Comp. Society Press, 1985), 138–151.

    Google Scholar 

  37. P. Rety, C. Kirchner, H. Kirchner and P. Lescanne, NARROWER: A new algorithm for unification and its application to logic programming. Proc. First Int. Conf. on Rewriting Techniques and Applications (1985).

    Google Scholar 

  38. J.A. Robinson, A machine-oriented logic based on the resolution principle. J. ACM 12 (1965), 23–41.

    Google Scholar 

  39. J.A. Robinson, Logic: Form and Function (Elsevier North Holland, 1979).

    Google Scholar 

  40. E.Y. Shapiro, A subset of Concurrent Prolog and its interpreter. Techn. Rep. TR-003, ICOT (1983).

    Google Scholar 

  41. D.A. Turner, SASL language manual. Dept. of Computational Science, Univ. of St. Andrews (1979).

    Google Scholar 

  42. K. Ueda, Guarded Horn clauses. ICOT Tech. Report TR-103 (1985).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

J. W. de Bakker W. -P. de Roever G. Rozenberg

Rights and permissions

Reprints and permissions

Copyright information

© 1986 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Levi, G. (1986). Logic programming: The foundations, the approach and the role of concurrency. In: de Bakker, J.W., de Roever, W.P., Rozenberg, G. (eds) Current Trends in Concurrency. Lecture Notes in Computer Science, vol 224. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0027045

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-16488-3

  • Online ISBN: 978-3-540-39827-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics