|
Abstract : |
Traditional declarative debuggers, despite their theoretical attractions are not considered to be practical tools for debugging of many Prolog programs. This is partly due to the fact that the basic declarative debugging system (Shapiro 83) only dealt with pure Prolog programs, and partly due to practical limitations of the suggested methods and algorithms. Our aim has been to study the applicability of declarative debugging methods to a wider range of Prolog programs. Earlier we have reported on improvements to methods and algorithms for declarative debugging of logic programs. In this paper we discuss extention of our algorithms for dealing with some Prolog constructs. In particular, negation of composed goals, unsafe uses of negation, the built-in setof predicate, and the if-then-else construct are elaborated upon. We also report on experiments with a sample of non-trivial Prolog programs, using our prototype system. Practical problems such as multiplicity of "irrelevant " user interactions are addressed. Finally, the types of Prolog programs to which the extended declarative debugging techniques are applicable are discussed. 1, |