Concurrent Prolog: A Progress Report

A process-oriented language, Concurrent Prolog embodies dataflow synchronization and guarded-command indeterminacy as its basic control mechanisms. C oncurrent Prolog is a logic programming language designed for concurrent programming and parallel execution. A process-oriented language, it embodies dataflow synchronization and guarded-command indeterminacy as its basic control mechanisms. This article outlines the basic concepts and definition of the language, and surveys the major programming techniques that emerged out of three years of its use. The history of the language development, implementation, and applications are reviewed.

[1]  Akikazu Takeuchi,et al.  MANDELA: A LogicBased Knowledge Programming System , 1984, FGCS.

[2]  William B. Ackerman,et al.  Data Flow Languages , 1899, Computer.

[3]  Kazunori Ueda,et al.  Efficient Stream/Array Processing in Logic Programming Languages , 1984, FGCS.

[4]  Seymour Papert,et al.  Mindstorms: Children, Computers, and Powerful Ideas , 1981 .

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

[6]  Daniel P. Friedman,et al.  An Approach to Fair Applicative Multiprogramming , 1979, Semantics of Concurrent Computation.

[7]  Keith L. Clark,et al.  PARLOG: parallel programming in logic , 1986, ACM Trans. Program. Lang. Syst..

[8]  Jacob Levy A Unification Algorithm for Concurrent Prolog , 1984, ICLP.

[9]  Akikazu Takeuchi,et al.  A Sequential Implementation of Concurrent Prolog Based on the Shallow Binding Scheme , 1988, International Conference on Spoken Language Processing.

[10]  Arvind,et al.  Streams and Managers , 1980, Operating Systems Engineering.

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

[12]  Keith L. Clark,et al.  Notes on the Implementation of Parlog , 1985, J. Log. Program..

[13]  Lisa Hellerstein,et al.  Implementing Parallel Algorithms in Concurrent Prolog: The MAXFLOW Experience , 1984, SLP.

[14]  Ehud Shapiro,et al.  Systems programming in concurrent prolog , 1984, POPL.

[15]  Krysia Broda,et al.  Parlog for Discrete Event Simulation , 1984, ICLP.

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

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

[18]  H. T. Kung Why systolic architectures? , 1982, Computer.

[19]  Akikazu Takeuchi,et al.  Partial Evaluation of Prolog Programs and its Application to Meta Programming , 1986, IFIP Congress.

[20]  Hisao Tamaki A Distributed Unification Scheme for Systolic Logic Programs , 1985, ICPP.

[21]  Steven D. Johnson,et al.  Circuits and Systems: Implementing Communication with Streams , 1982, IMACS World Congress.

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

[23]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[24]  Kazunori Ueda,et al.  Concurrent Prolog Compiler on Top of Prolog , 1985, SLP.

[25]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[26]  Lisa Hellerstein,et al.  Notes on the Complexity of Systolic Programs , 1987, J. Parallel Distributed Comput..

[27]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .

[28]  Ehud Shapiro Systolic Programming: A Paradigm of Parallel Processing , 1984, FGCS.

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

[30]  Vijay A. Saraswat,et al.  Partial correctness semantics for CP [ , | , &] , 1985, FSTTCS.

[31]  David H. D. Warren Logic programming and compiler writing , 1980, Softw. Pract. Exp..

[32]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[33]  Shimon Edelman,et al.  Quadtrees in Concurrent PROLOG , 1985, ICPP.

[34]  Shmuel Safra,et al.  Fast Multiway Merge Using Destructive Operation , 1985, ICPP.

[35]  Robert A. Kowalski,et al.  Logic for problem solving , 1982, The computer science library : Artificial intelligence series.

[36]  Michael Codish,et al.  Compiling OR-parallelism into AND-parallelism , 1986, ICLP.

[37]  Keith L. Clark,et al.  A First Order Theory of Data and Programs , 1977, IFIP Congress.