[comp.lang.prolog] Coroutining in IC-Prolog and LOG

narain@randvax.UUCP (Sanjai Narain) (02/08/89)

IC-Prolog was brought up by Steve Gregory during a course which Keith
Clark gave at Syracuse University in 1980.  It may be worthwhile contacting
one of these, if this has not already been done.

One of the most interesting features of IC-Prolog was the ability to set
up coroutining between processes (i.e. predications in the body of a
clause).  It could be utilized to solve generate-and-test problems
quite efficiently (on paper only).

Coroutining, in a rewriting context, can be realized in the LOG(F) system,
via lazy evaluation.  Moreover, this is done is straight Prolog, not in an
extension of it.  The advantage, of course, is that lazy reductions are
performed very efficiently (at approximately the speed of Prolog).

How such coroutining can be exploited to program solutions to
generate-and-test problems is reported in a paper "Optimization by
non-deterministic, lazy rewriting" in the upcoming Rewriting Techniques
and Applications Conference.

-- Sanjai Narain