Non-determinism

Languages of this class used non-determinism in a fundamental way to gain parallelism. Also central is the notion of the logical variable as a communication channel. Non-determinism is exploited in two different ways: non-deterministic composition similar to Dijkstra's guarded clauses (in PCN [CT90] and UNITY [CM88]), and non-deterministic goal resolution (in parallel logic programming [Sha89]).

  1. A comprehensive survey of concurrent logic programming techniques [Sha89].
  2. UNITY. Proving the correctness of parallel programs is emphasized [CM88].
  3. PCN. Synthesis of ideas from CSP, UNITY and logic programming [CT90].
  4. PARLOG. A concurrent version of Prolog exploiting both AND- and OR-parallelism [CG85].


Guy.Blelloch@cs.cmu.edu, July 1994