Coroutining and the Construction of Terminating Logic Programs (1992)
| Venue: | Australian Computer Science Communications |
| Citations: | 23 - 1 self |
BibTeX
@TECHREPORT{Naish92coroutiningand,
author = {Lee Naish},
title = {Coroutining and the Construction of Terminating Logic Programs},
institution = {Australian Computer Science Communications},
year = {1992}
}
OpenURL
Abstract
This paper investigates the role of coroutining in the termination of logic programs. We define a variant of SLD resolution, in which the execution of atoms may be suspended indefinitely, and give some basic results concerning success, finite failure and floundering. Next we discuss how correct procedures can be combined to form new procedures using disjunction, conjunction and recursion. We argue that modes are crucial to reasoning about termination and show that cyclic modes are the basic reason for conjunctions looping. When recursion is used we identify another cause of loops: speculative binding of output variables. That is, binding output variables before it is known that a solution to a subcomputation exists. Keywords: mode, flounder, Prolog, stream and-parallelism -- 1 -- 1 Introduction







