Logic Programming: The Foundations, the Approach and the Role of Concurrency

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.

[1]  Robin Milner,et al.  A proposal for standard ML , 1984, LFP '84.

[2]  Giorgio Levi,et al.  On the Fixed-Point Semantics of Horn Clauses with Infinite Terms , 1983, Logic Programming Workshop.

[3]  Michael J. C. Gordon,et al.  Edinburgh LCF: A mechanised logic of computation , 1979 .

[4]  Giorgio Levi,et al.  A Synchronization Logic: Axiomatics and Formal Semantics of Generalized Horn Clauses , 1984, Inf. Control..

[5]  J. A. Robinson,et al.  Logic, form and function , 1979 .

[6]  Luís Monteiro An Extension to Horn Clause Logic Allowing the Definition of Concurrent Processes , 1981, ICFPC.

[7]  Giorgio Levi,et al.  The Declarative Semantics of Logical Read-Only Variables , 1985, SLP.

[8]  Giorgio Levi,et al.  Applicative communicating processes in first order logic , 1982, Symposium on Programming.

[9]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[10]  Richard C. T. Lee,et al.  Symbolic logic and mechanical theorem proving , 1973, Computer science classics.

[11]  Keith L. Clark,et al.  A relational language for parallel programming , 1981, FPCA '81.

[12]  Giorgio Levi,et al.  The Relation between Logic and Functional Languages: A Survey , 1986, J. Log. Program..

[13]  T. Moto-Oka,et al.  Fifth Generation Computer Systems , 1982 .

[14]  Peter Henderson,et al.  Purely Functional Operating Systems , 1982 .

[15]  José Meseguer,et al.  Equality, Types, Modules, and (Why not ?) Generics for Logic Programming , 1984, J. Log. Program..

[16]  Uday S. Reddy,et al.  Narrowing as the Operational Semantics of Functional Languages , 1985, SLP.

[17]  Kazunori Ueda,et al.  Guarded Horn Clauses , 1986, LP.

[18]  William F. Clocksin,et al.  Programming in Prolog , 1981, Springer Berlin Heidelberg.

[19]  Ehud Shapiro,et al.  A subset of Concurrent Prolog and its interpreter , 1988 .

[20]  Robert A. Kowalski,et al.  The Semantics of Predicate Logic as a Programming Language , 1976, JACM.

[21]  Luís Monteiro,et al.  A Proposal for Distributed Programming in Logic , 1984, Implementations of Prolog.

[22]  Robert A. Kowalski,et al.  Algorithm = logic + control , 1979, CACM.

[23]  Rod M. Burstall,et al.  HOPE: An experimental applicative language , 1980, LISP Conference.

[24]  Gilles Kahn,et al.  Coroutines and Networks of Parallel Processes , 1977, IFIP Congress.

[25]  Claude Kirchner,et al.  NARROWER: A New Algorithm for Unification and Its Application to Logic Programming , 1985, RTA.

[26]  Robert A. Kowalski,et al.  Predicate Logic as Programming Language , 1974, IFIP Congress.

[27]  Peter Henderson Functional geometry , 1982, LFP '82.

[28]  Roberto Barbuti,et al.  On the Integration of Logic Programming and Functional Programming , 1984, SLP.

[29]  Giorgio Levi,et al.  Top-Down Mathematical Semantics and Symbolic Execution , 1983, RAIRO Theor. Informatics Appl..

[30]  Dennis F. Kibler,et al.  Parallel interpretation of logic programs , 1981, FPCA '81.

[31]  Luís Moniz Pereira,et al.  Delta-Prolog: A Distributed Logic Programming Language , 1984, FGCS.

[32]  Krzysztof R. Apt,et al.  Contributions to the Theory of Logic Programming , 1982, JACM.

[33]  Roberto Barbuti,et al.  LEAF: A Language which Integrates Logic, Equations and Functions , 1986, Logic Programming: Functions, Relations, and Equations.

[34]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.