Many logic programming languages have delay primi- tives which allow coroutining. This introduces a class of bug symptoms — computations can flounder when they are intended to succeed or finitely fail. For con- current logic programs this is normally called dead- lock. Similarly, constraint logic programs can fail to invoke certain constraint solvers because variables are insufficiently instantiated or constrained. Diagnos- ing such faults has received relatively little attention to date. Since delay primitives affect the procedural but not the declarative view of programs, it may be expected that debugging would have to consider the often complex details of interleaved execution. How- ever, recent work on semantics has suggested an al- ternative approach. In this paper we show how the declarative debugging paradigm can be used to diag- nose unexpected floundering, insulating the user from the complexities of the execution.
|Cite as: Naish, L. (2012). Declarative Diagnosis of Floundering in Prolog. In Proc. Australasian Computer Science Conference (ACSC 2012) Melbourne Australia. CRPIT, 122. Reynolds, M. and Thomas, B. Eds., ACS. 49-56 |
(local if available)