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

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


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.

Key words

semantics of logic programs parallel logic programs perpetual processes streams read-only variables concurrent logic languages Concurrent Prolog 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

7. References

  1. /Abramsky 84/.
    S. Abramsky, Reasoning about concurrent systems (1984).Google Scholar
  2. /Andreka 83/.
    H. Andreka, M.H. van Emden, I. Nemeti and J. Tiuryn, Infinite-term semantics for logic programs. Draft manuscript (1983).Google Scholar
  3. /Apt 82/.
    K.R. Apt and M.H. van Emden, Contributions to the theory of logic programming. J. ACM 29 (1982), 841–862.Google Scholar
  4. /Barbuti 84/.
    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. /Barbuti 85/.
    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. /Bellia 82/.
    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. /Bellia 85/.
    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. /Bowen 82/.
    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. /Burstall 80/.
    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. /Chang 71/.
    C.L. Chang and R.T.C. Lee, Symbolic Logic and Mechanical Theorem Proving (Academic Press, 1971).Google Scholar
  11. /Clark 81/.
    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. /Clark 83/.
    K.L. Clark and S. Gregory, PARLOG: a parallel logic programming language. Imperial College Research Report 83/5 (May 1983).Google Scholar
  13. /Clocksin 81/.
    W.F. Clocksin and C.S. Mellish, Programming in PROLOG (Springer Verlag, 1981).Google Scholar
  14. /Conery 81/.
    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. /vanEmden 76/.
    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. /vanEmden 82/.
    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. /Falaschi 83/.
    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. /Falaschi 84/.
    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. /Falaschi 85/.
    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. /Goguen 79/.
    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. /Goguen 84/.
    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. /Gordon 79/.
    M. Gordon, R. Milner and C. Wadsworth, Edinburgh LCF. LNCS 78 (Springer Verlag, 1979).Google Scholar
  23. /Hansson 82/.
    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. /Henderson 82/.
    P. Henderson, Purely functional operating systems. In Functional Programming, J. Darlington, P. Henderson and D. Turner, Eds., (Cambridge University Press, 1982).Google Scholar
  25. /Kahn 77/.
    G. Kahn and D. Mac Queen, Coroutines and networks of parallel processes. Information Processing 77 (North-Holland, 1977), 993–998.Google Scholar
  26. /Kowalski 74/.
    R.A. Kowalski, Predicate logic as a programming language. Information Processing 74 (North-Holland, 1974), 569–574.Google Scholar
  27. /Kowalski 79a/.
    R.A. Kowalski, Algorithm=Logic+Control. Comm. ACM 22 (1979), 424–431.Google Scholar
  28. /Kowalski 79b/.
    R.A. Kowalski, Logic for problem solving (North Holland, 1979).Google Scholar
  29. /Levi 83/.
    G. Levi and A. Pegna, Top-down mathematical semantics and symbolic execution. RAIRO Informatique Theorique 17 (1983), 55–70.Google Scholar
  30. /Levi 85/.
    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. /Lloyd 84/.
    J.W. Lloyd, Foundations of logic programming (Springer-Verlag, 1984).Google Scholar
  32. /Milner 84/.
    R. Milner, A proposal for Standard ML. ACM Symp. LISP and Functional Programming (1984), 184–197.Google Scholar
  33. /Monteiro 81/.
    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. /Monteiro 84/.
    L. Monteiro, A proposal for distributed programming in logic. In Implementations of PROLOG, J.A. Campbell, Ed. (Ellis Horwood, 1984).Google Scholar
  35. /Pereira 84/.
    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. /Reddy 85/.
    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. /Rety 85/.
    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. /Robinson 65/.
    J.A. Robinson, A machine-oriented logic based on the resolution principle. J. ACM 12 (1965), 23–41.Google Scholar
  39. /Robinson 79/.
    J.A. Robinson, Logic: Form and Function (Elsevier North Holland, 1979).Google Scholar
  40. /Shapiro 83/.
    E.Y. Shapiro, A subset of Concurrent Prolog and its interpreter. Techn. Rep. TR-003, ICOT (1983).Google Scholar
  41. /Turner 79/.
    D.A. Turner, SASL language manual. Dept. of Computational Science, Univ. of St. Andrews (1979).Google Scholar
  42. /Ueda 85/.
    K. Ueda, Guarded Horn clauses. ICOT Tech. Report TR-103 (1985).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Giorgio Levi
    • 1
  1. 1.Dipartimento di InformaticaUniversita' di PisaItaly

Personalised recommendations