PARLOG: parallel programming in logic
- 2 January 1986
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 8 (1), 1-49
- https://doi.org/10.1145/5001.5390
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)Keywords
This publication has 10 references indexed in Scilit:
- Notes on the implementation of PARLOGThe Journal of Logic Programming, 1985
- Systems programming in concurrent prologPublished by Association for Computing Machinery (ACM) ,1984
- Parallel interpretation of logic programsPublished by Association for Computing Machinery (ACM) ,1981
- The semantic elegance of applicative languagesPublished by Association for Computing Machinery (ACM) ,1981
- ALICE a multi-processor reduction machine for the parallel evaluation CF applicative languagesPublished by Association for Computing Machinery (ACM) ,1981
- A relational language for parallel programmingPublished by Association for Computing Machinery (ACM) ,1981
- Logic programming and compiler writingSoftware: Practice and Experience, 1980
- Communicating sequential processesCommunications of the ACM, 1978
- Fourth international colloquium on automata, languages and programmingTheoretical Computer Science, 1976
- A lazy evaluatorPublished by Association for Computing Machinery (ACM) ,1976