The Family of Concurrent Logic Programming Languages

Abstract

Concurrent logic languages are high-level programming languages for parallel and distributed systems that offer a wide range of both known novel concurrent programming techniques. Being logic programming languages, they preserve many advantages of the abstract logic programming model, including the logical reading of programs and computations, the convenience of representing data-structures with logical terms and manipulating them using unification, and the amenability to meta-programming. Operationally, their model of computation consists of a dynamic set of concurrent processes, communicating by instantiating shared logical variables, synchronizing by waiting for variables to be instantiated, and making the nondeterministic choices, possibly based on the availability of values of variables. This paper surveys the family of concurrent logic programming languages within a uniform operational framework. It demonstrates the expressive power of even the simplest language in the family, and investigates how varying the basic synchronization and control constructs affect the expressiveness and efficiency of the resulting languages. In addition, the paper reports on techniques for sequential and parallel implementations of languages in this family, mentions their applications to date, and relates these languages to the abstract logic programming model, to the programming language Prolog, and to other concurrent computational models and programming languages. (KR)

Open PDF

Document Details

Document Type
Technical Report
Publication Date
May 01, 1989
Accession Number
ADA213958

Entities

People

  • Ehud Y. Shapiro

Organizations

  • Weizmann Institute of Science

Tags

Communities of Interest

  • C4I

DTIC Thesaurus Topics

  • Algorithms
  • Application Software
  • Applied Mathematics
  • Automata
  • Communication Channels
  • Computer Programming
  • Computer Science
  • Computers
  • Computing System Architectures
  • Construction
  • Debugging
  • Dynamic Loads
  • Instruction Set Architecture
  • Language
  • Object Oriented Programming
  • Operating Systems
  • Programming Languages

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Linguistics
  • Mathematical Modeling and Probability Theory.
  • Parallel and Distributed Computing.