Generalized Algorithmic Debugging
Publisher: Linkoping University
Published: January 1, 1991
Format: Paperback
Number of pages: 189
ISBN-13: 9789178708284
Description: Abstract: "This thesis presents a novel method for semi-automatic program debugging --

the Generalized Algorithmic Debugging Technique, GADT. The notion of declarative algorithmic debugging was first introduced for logic programming. However, this is the first algorithmic debugging method based on the principle of declarative debugging which can handle the debugging of programs written in an imperative language including loops and side-effects. In order to localize a bug, the debugging algorithm incrementally acquires knowledge about the debugged program. The knowledge is supplied by the user. The algorithm terminates when the bug has been localized to within the body of a procedure or an explicit loop. The generalized algorithmic debugging method uses program transformation and program flow analysis techniques to transform the subject program to a largely side-effect-free internal form which is used for bug localization. Thus, this algorithm defines two views of a program: (1) The user view which is the original program with side-effects and (2) the transformed view whi

ch is the transformed side-effect-free version of the original program. Transparent program debugging is supported by maintaining a mapping between these two views. The bug localization algorithm works on the transformed version, whereas user interactions are defined in terms of the user view. We have presented a general technique which it [sic] is not based on any ad-hoc assumptions about the subject program. The flexibility of this method has made it possible to further improve the bug localization algorithm by employing a number of other techniques, i.e. program slicing and test database lookup, thus increasing the degree of automation provided by GADT. These extensions are topics for ongoing research projects and future work. A survey and evaluation of a number of automated debugging systems and the techniques behind these systems are also presented. We have introduced several criteria for comparing these techniques with GADT. A prototype implementation of the generalized algorithm

ic debugging technique has been carried out to verify its feasibility, and to provide feedback for further refinement of the method. This has already resulted in a more efficient set of transformations, described in the thesis, compared to the initial prototype."