A backtracking algorithm for the stream AND-parallel execution of logic programs (Q1118390)
From MaRDI portal
scientific article
Language | Label | Description | Also known as |
---|---|---|---|
English | A backtracking algorithm for the stream AND-parallel execution of logic programs |
scientific article |
Statements
A backtracking algorithm for the stream AND-parallel execution of logic programs (English)
0 references
1988
0 references
We present the first backtracking algorithm for stream AND-parallel logic programs. It relies on compile-time knowledge of the dataflow graph of each clause to let it figure out efficiently which goal to kill or restart when a goal fails. This crucial information, which we derive from mode declarations, was not available at compile-time in any previous stream AND-parallel system. We show that modes can increase the precision of the backtracking algorithm, though our algorithm allows this precision to be traded off against overhead on a procedure-by-procedure and call-by-call basis. The modes also allow our algorithm to handle efficiently programs that manipulate partially instantiated data structures and an important class of programs with circular dependency graphys. On code that does not need backtracking, the efficiency of our algorithm approaches that of the committed-choice languages; on code that does need backtracking its overhead is comparable to that of the independent AND-parallel backtracking algorithms.
0 references
stream AND-parallelism
0 references
don't-know nondeterminism
0 references
intelligent backtracking
0 references
strong and precise modes
0 references