I agree. I think that Oz's combination of constraints and search is wonderful. My page on Concurrent Programming in Oz (
http://cs.calstatela.edu/~wiki/index.php/Courses/CS_460/Fall_2005/Concurrent_logic_programming_in_Oz) was my way of trying to work that out for myself and at the same time to explain it in simple terms.
New computational spaces are search. New statements and narrowing of domains in an existing computational space is constraint. I think it's a lovely distinction, and I 'd like to see it made as cleanly and sharply as possible.
Sometimes I don't understand the details of how Oz works. Until Raph's message, I didn't understand the 'or' statement. (I still don't understand why I get NO answers when using an or-version of Append in a SearchAll.)
And the preceding two points are separate from my comments about silent suspension as something that should be stressed to new users as something that is fundamental to Oz as a programming language, no matter how it is used and no matter how lovely it is.
The Oz-is-not-Prolog perspective should also be stressed. Yet SearchAll and SolveAll encourage one to think of Oz as Prolog in different clothes. Why not implement choice as the creation of multiple threads in multiple computation spaces? That's more the point, isn't it? Then some mechanism should be defined to harvest the results or to allow the multiple parallel threads to deposit their results somewhere. That would be more Oz-like in my view. Having a search controller like SearchAll makes it seem very Prolog-like.
That's why I suggested that multiple threads in multiple spaces is search; multiple threads in a single space is constraint. It seems to me from my current understanding that this simiple notion is the essence of Oz. I think it's a lovely way to look at things. Yet no one seemed to respond to it when I made it the other day. What do you think?
-- Russ
On 10/20/05, Christian Schulte <[EMAIL PROTECTED]> wrote:
The two major strands of thought in the design of Oz were concurrency and
inference. 'or' (albeit an abstraction programmed from computation spaces
these days) combines both in a rather genuine way. I just like to repeat
what I said before: Oz is not Prolog, it has been designed to be a successor
to Prolog by stressing inference in contrast to blind search. This very idea
has boomed over the last two decades in areas such as constraint programming
or answer set programming, to just name a few.
Point is: please have a go at writing programs that separate inference from
nondeterministic guessing (search). Otherwise you'll be missing out on the
major development that underlies the design of Oz (no criticism, just
encouragement, please take it that way). I personally, while being very
biased and having a different focus on what is reported in CTM, have to
admit that CTM does not stress this very fact enough!
Christian
-----Original Message-----
From: [EMAIL PROTECTED] [mailto: [EMAIL PROTECTED]] On
Behalf Of Russ Abbott
Sent: Thursday, October 20, 2005 11:51 PM
To: Peter Van Roy; Torsten Anders; [EMAIL PROTECTED]
Subject: Re: 'or'
I'm still confused about 'or' as a statement.
What does it mean for it to try to pick between alternatives? Under what
conditions will it succeed/fail? I'm guessing that in "trying" it does so
in a local copy of the environment to avoid assigning variables. Is that
why I saw two different values for a variable--which is not possible without
a choice point. Since search engines don't see it, how can it be prompted
to resume once it suspends? How is it intended to be used? Or lik 'dis' is
it an experimental artifact that is no longer considered part of the
language.
-- Russ
On 10/20/05, Peter Van Roy < [EMAIL PROTECTED]> wrote:
...
Note that the 'or' statement does not create a choice point at all. It
tries immediately to pick between alternatives and if it can't decide, it
will
simply suspend. Search engines don't see 'or'. ...
--
_____________________________________________
Professor, Computer Science
California State University, Los Angeles
o Check out my blog at http://russabbott.blogspot.com/
_________________________________________________________________________________ mozart-users mailing list [email protected] http://www.mozart-oz.org/mailman/listinfo/mozart-users
