[Fwd: Re: [cells-devel] Logic Programming in Cells]
Thomas F. Burdick
tfb at OCF.Berkeley.EDU
Thu May 26 18:52:21 UTC 2005
Kenny Tilton writes:
> The bigger problem is that half-way thru I remembered that I kind of
> like the idea of setting a model in motion and then just having it run
> without further input because one change always leads to another. We'd
> have to have a hook somewhere to stop and check the event queue so the
> poor user can get in on the fun.
>
> I cannot say for sure I will ever do that, but it Sounds Right. So I
> will look instead at maintaining a simulated propagation stack just to
> help debugging (a known need) with an eye towards someday possibly
> implementing "rule calculation backout". Am I right that the condition
> system would be too slow for logic programming? You mentioned the rule
> would "call FAIL". What would FAIL do?
FAIL would do some sort of nonlocal exit :-)
Uhm, I'm not sure. Currently, the FAIL I have signals a
NO-VALID-STATE condition, the code that runs the generators
establishes a BACKTRACK restart, and wrapped around the very outside
is a handler for NO-VALID-STATE that invokes the BACKTRACK restart if
it can find it. I did this with the idea that Cells is probably not
up to being a full-featured LP engine, so it's probably better to err
on the side of letting the user hook in.
In the no-stack situation, FAIL could cause a RETURN-FROM back into
the propagation machinery, which would certainly be faster. Whether
that would make enough of a difference to enable a backtracking Cells
to be used for more general LP stuff, I don't know. Only one way to
find out, I guess.
More information about the cells-devel
mailing list