About: Concurrent logic programming is a research topic. Over the lifetime, 178 publications have been published within this topic receiving 5598 citations.
TL;DR: Parlog as discussed by the authors is a logic programming language with parallel modes of evaluation, which is similar to PROLOG in the sense that nearly every definition and query can be read as a sentence of predicate logic.
Abstract: PARLOG is a logic programming language in the sense that nearly every definition and query can be read as a sentence of predicate logic. It differs from PROLOG in incorporating parallel modes of evaluation. For reasons of efficient implementation, it distinguishes and separates and-parallel and or-parallel evaluation.PARLOG relations are divided into two types: single-solution relations and all-solutions relations. A conjunction of single-solution relation calls can be evaluated in parallel with shared variables acting as communication channels for the passing of partial bindings. Only one solution to each call is computed, using committed choice nondeterminism.A conjunction of all-solutions relation calls is evaluated without communication of partial bindings, but all the solutions may be found by an or-parallel exploration of the different evaluation paths. A set constructor provides the main interface between single-solution relations and all-solutions relations.This paper is a tutorial introduction to PARLOG. It assumes familiarity with logic programming. Categories and Subject Descriptors: D.l.l [Programming Techniques]: Applicative (Functional)
TL;DR: Flat Concurrent Prolog is described, a comprehensive and radical approach to parallel computing that is based on a simple foundation, and can serve as a general-purpose high-level machine language for parallel computers.
Abstract: From the Publisher:
Concurrent Prolog brings together for the first time descriptions of the major concurrent logic programming languages proposed so far for future parallel computer systems. In particular, it describes the concurrent logic programming language Flat Concurrent Prolog, a comprehensive and radical approach to parallel computing that is based on a simple foundation.
After surveying recent research in concurrent logic programming languages, these two volumes address all of the relevant aspects of constructing such a parallel computer system. They investigate how systems programming and the implementation of parallel algorithms can be carried out with this language; how advanced program development techniques can be applied; how to embed other high-level languages in it; and how to implement this language efficiently on sequential and parallel computers. The results of these investigations suggest that Flat Concurrent Prolog can serve as a general-purpose high-level machine language for parallel computers.
Ehud Y. Shapiro is Senior Scientist, Department of Applied Mathematics, Weizmann Institute of Science. Concurrent Prolog is included in his Logic Programming series. Much of the research describe in the book was stimulated by the Fifth Generation project and cross-fertilization between the authors and ICOT.
TL;DR: Concurrent Prolog is a logic programming language designed for concurrent programming and parallel execution that embodies dataflow synchronization and guarded-command indeterminacy as its basic control mechanisms.
Abstract: Concurrent Prolog is a logic programming language designed for concurrent programming and parallel execution. It is a process oriented language, which embodies dataflow synchronization and guarded-command indeterminacy as its basic control mechanisms.
TL;DR: In this article, the basic operations of object-oriented programming languages, such as creating an object, sending and receiving messages, modifying an object's state, and forming class-superclass hierarchies, can be implemented naturally in Concurrent Prolog.
Abstract: It is shown that the basic operations of object-oriented programming languages — creating an, object, sending and receiving messages, modifying an object’s state, and forming class-superclass hierarchies — can be implemented naturally in Concurrent Prolog. In addition, a new object-oriented programming paradigm, called incomplete messages, is presented. This paradigm subsumes stream communication, and greatly simplifies the complexity of programs defining communication networks and protocols for managing shared resources. Several interesting programs are presented, including a multiple-window manager. All programs have been developed and tested using the Concurrent Prolog interpreter described in.1)
TL;DR: This paper presents an algebra of idempotent substitutions whose operations have many properties and can be regarded as a basis for a theory of concurrent logic programming.
Abstract: This paper presents an algebra of idempotent substitutions whose operations have many properties. We provide an algorithm to compute these operations and we show how they are related to the standard composition. The theory of Logic Programming can be rewritten in terms of these new operations. The advantages are that both the operational and the declarative semantics of Horn Clause Logic can be formalized in a compositional way and the proofs of standard results, like the switching lemma, get easier and more intuitive. Moreover, this formalization can be naturally extended to a parallel computational model, and therefore it can be regarded as a basis for a theory of concurrent logic programming.