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: This book discusses the Interplay of Theory and Practice in a Parallel Object-Oriented Language, and a Functional Programming Approach to the Specification and Verification of Concurrent Systems.
Abstract: 1. The Interplay of Theory and Practice in a Parallel Object-Oriented Language.- 2. Object-Oriented Process Specification.- 3. Formal Object Oriented Specification of Distributed Systems.- 4. The Design and Development of Ada Real-Time Embedded Systems.- 5. Protocol Analysis and Implementation using NPNs and SDL.- 6. A Tool for the Performance Analysis of Concurrent Systems.- 7. Winston: A Tool for Hierarchical Design and Simulation of Concurrent Systems.- 8. A Specification-Verification Framework for Distributed Applications Software.- 9. Dynamic Communication Links.- 10. Formal Environment and Tools Description for the Analysis of Real Time Concurrent Systems.- 11. An Equivalence Decision Problem in Systolic Array Verification.- 12. Should Concurrency be Specified?.- 13. Semantics for Specifying Real-Time Systems (extended abstract only).- 14. Specifying Processes in Terms of their Environments.- 15. Hennessy-Milner Logic with Recursion as a Specification Language, and a Refinement Calculus based on It.- 16. A Functional Programming Approach to the Specification and Verification of Concurrent Systems.- 17. Synchronization in Network Protocols.- 18. From Synchronous to Asynchronous Communication.- 19. Formal Specification and Verification of Asynchronous Processes in Higher-Order Logic.- 20. Temporal Specifications Directed by Grammar and Design of Process Networks.- 21. Analysis of Estelle Specifications.- 22. Concurrency in Modula-2: Properties of the Language Primitives.- 23. Specification and Implementation of Concurrent Systems using PARLOG.- 24. Specification and Verification in Communications Standards.- 25. Experience with LOTOS and Environment LOTTE on an ISDN Protocol.- 26. The Specification and Design of a Nondeterministic Data Structure Using CCS.- 27. A High-Level Petri Net Specification of the Cambridge Fast Ring M-Access Service.- Poster Sessions.- 1. Modelling of Distributed Problem Solving using Logic Modified Petri Nets.- 2. An Animator for CSP Implemented in HOPE.- 3. A Concurrent Approach to the Towers of Hanoi.- Author Index.
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: A tutorial introduction to PARLOG, a logic programming language in the sense that nearly every definition and query can be read as a sentence of predicate logic, which differs from PROLOG in incorporating parallel modes of evaluation.
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: The Kernel Andorra Prolog (KAP) as mentioned in this paper is a logic programming language framework based on Prolog and Prolog Prolog is defined by a formal computation model, which allows general combinations of concurrent reactive languages and non-deterministic transformational languages.
Abstract: The logic programming language framework Kernel Andorra Prolog is defined by a formal computation model. In Kernel Andorra Prolog, general combinations of concurrent reactive languages and nondeterministic transformational languages may be specified. The framework is based on constraints. The languages Prolog, GHC, Parlog, and Atomic Herbrand, are all executable in the Kernel Andorra Prolog computation model. There are instances of the framework in which all of these languages are embeddable.