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.
Preview
Unable to display preview. Download preview PDF.
7. References
S. Abramsky, Reasoning about concurrent systems (1984).
H. Andreka, M.H. van Emden, I. Nemeti and J. Tiuryn, Infinite-term semantics for logic programs. Draft manuscript (1983).
K.R. Apt and M.H. van Emden, Contributions to the theory of logic programming. J. ACM 29 (1982), 841–862.
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.
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).
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.
M. Bellia and G. Levi, The relation between logic and functional languages: A survey. Techn. Rept. University of Pisa, Dipartimento di Informatica (July 1985).
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.
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.
C.L. Chang and R.T.C. Lee, Symbolic Logic and Mechanical Theorem Proving (Academic Press, 1971).
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.
K.L. Clark and S. Gregory, PARLOG: a parallel logic programming language. Imperial College Research Report 83/5 (May 1983).
W.F. Clocksin and C.S. Mellish, Programming in PROLOG (Springer Verlag, 1981).
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.
M.H. van Emden and R.A. Kowalski, The semantics of predicate logic as a programming language. J. ACM 23 (1976), 733–742.
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.
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.
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.
M. Falaschi, G. Levi and C. Palamidessi, The formal semantics of processes and streams in logic programming. Colloquia Mathematica Societatis Janos Bolyai 42 (1985).
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.
J.A. Goguen and J. Meseguer, Equality, types, modules and (why not?) generics for logic programming. J. Logic Programming 1 (1984), 179–210.
M. Gordon, R. Milner and C. Wadsworth, Edinburgh LCF. LNCS 78 (Springer Verlag, 1979).
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.
P. Henderson, Purely functional operating systems. In Functional Programming, J. Darlington, P. Henderson and D. Turner, Eds., (Cambridge University Press, 1982).
G. Kahn and D. Mac Queen, Coroutines and networks of parallel processes. Information Processing 77 (North-Holland, 1977), 993–998.
R.A. Kowalski, Predicate logic as a programming language. Information Processing 74 (North-Holland, 1974), 569–574.
R.A. Kowalski, Algorithm=Logic+Control. Comm. ACM 22 (1979), 424–431.
R.A. Kowalski, Logic for problem solving (North Holland, 1979).
G. Levi and A. Pegna, Top-down mathematical semantics and symbolic execution. RAIRO Informatique Theorique 17 (1983), 55–70.
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.
J.W. Lloyd, Foundations of logic programming (Springer-Verlag, 1984).
R. Milner, A proposal for Standard ML. ACM Symp. LISP and Functional Programming (1984), 184–197.
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).
L. Monteiro, A proposal for distributed programming in logic. In Implementations of PROLOG, J.A. Campbell, Ed. (Ellis Horwood, 1984).
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.
U.S. Reddy, Narrowing as the operational semantics of functional languages. Proc. 1985 Symp. on Logic Programming (IEEE Comp. Society Press, 1985), 138–151.
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).
J.A. Robinson, A machine-oriented logic based on the resolution principle. J. ACM 12 (1965), 23–41.
J.A. Robinson, Logic: Form and Function (Elsevier North Holland, 1979).
E.Y. Shapiro, A subset of Concurrent Prolog and its interpreter. Techn. Rep. TR-003, ICOT (1983).
D.A. Turner, SASL language manual. Dept. of Computational Science, Univ. of St. Andrews (1979).
K. Ueda, Guarded Horn clauses. ICOT Tech. Report TR-103 (1985).
Author information
Authors and Affiliations
Editor information
Rights 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