Russ Abbott wrote:

In http://cs.calstatela.edu/~wiki/index.php/Courses/CS_460/Fall_2005/Concurrent_logic_programming_in_Oz <http://cs.calstatela.edu/%7Ewiki/index.php/Courses/CS_460/Fall_2005/Concurrent_logic_programming_in_Oz> , I attempt to give a brief description of concurrent logic programming in Oz. The first (and main) part is explicitly procedural. Its procedurality bothered me enough to prompt an attempt to offer a declarative interpretation. This seems somewhat unusual in that it offers a declarative version of logic programming in terms of a procedural version rather than the other way around. If anyone has any comments, I'd be very interested. -- Russ

Dear Russ,

Here is some extra information that can be useful for you when completing this section. First of all, 'concurrent logic programming' does not do any backtracking! It is the kind of logic programming done by the committed-choice languages (see section 5.8.1 in the CTM book, page 394). It is very different from Prolog, which is based on backtracking.

Prolog-style logic programming is exactly what is given by the Solve operation of chapter 9. The Solve operation is a kind of first-class Prolog top level: it generates a lazy list of solutions exactly in the order that Prolog generates them. Section 9.7 of CTM explains how to translate Prolog programs to Oz. (Solve is defined in chapter 12, but you don't need to understand computation spaces to understand that Solve returns a lazy list of solutions in the order of depth-first search!)

So there are two styles of logic programming that are currently popular:
- concurrent logic programming (no backtracking, committed-choice, concurrent)
- Prolog-style logic programming (global backtracking search, sequential)

As a final comment, constraint programming works very differently from these two styles. It is a kind of third style. It tries to avoid search by pruning solutions, whereas the Prolog style does generate and test. The pruning is done in a concurrent way, by propagators that each observes the store and tries to do its own pruning independently
of the others.

I hope this clarifies some things!

Peter


_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to