The searchfor better Prolog debugging environments has taken a number of dif- ferent paths of which three are particularly important: improvements to monitoring tools (notably the TransparentProlog Machine (Eisenstadt & Brayshaw, 1987)),pro- viding for greater user control over the debugging process (notably as in Opium+ (Ducasse,1988)), and partially automating the debugging process (notably in; (Pereira, 1986;l.loyd, 1986; Pereira & Calejo, 1988; Naish, 19,88)). A seriousproblem associatedwith this activity lies in pro~ding a principled con-!- ceptual framework within which the programmer can work with a number of different' debugging tools. Here, we outline a framework that we have'developed for the de- bugging of Prolog programs. We point out the relationship that holds betweenthis framework and eachof these three advancesin debugging. .' In order to demonstrate how the framework can be used,we explore an issue that has received relatively little attention recently: the run-time detection of programs that do not appear to terminate. Our analysisof (apparent) non-termination is based on a four level Bug Descrip- tion Framework that we have developed. This analysis goes further than the con- sideration of programs that would normally be regarded as 'looping'. We describe a debugging strategy in conjunction with a range of monitoring tools that provide greater assistancethan currently found, We indicate the increased efficiency that would be gained through a close-couplingof the program construction and execution phases. Fromthisanalysis,weseethat current(non-graphical)debuggingtoolsdonotpro- vide the necessaryhelp to deal with the caseof (apparent) non-termination. We also note that even a graphical debugger such as TPM (Eisenstadt & Brayshaw, 1987) does not provide all the desired assistancethat we would like.
|Title of host publication||Procs of the ALPUK-90 conference, 'Logic Programming: New Frontiers'|
|Publication status||Published - 1992|