Algorithmic debugging for imperative languages with side-effects

3Citations
Citations of this article
1Readers
Mendeley users who have this article in their library.

This article is free to access.

Abstract

Algorithmic debugging is a technique for semi-automatic localization of program errors. So far, this technique has been limited to programs without side-effects, and has only been applied to Prolog programs. In this paper, we generalize the algorithmic debugging method to programs written in imperative languages, e.g. Pascal, which may contain side-effects. Our method combines program transformation techniques with data flow analysis techniques to achieve this goal. Programs which contain side-effects are transformed or mapped to programs without side-effects. These transformations are guided by data flow analysis results. The conventional procedure level algorithmic debugging technique is used on the transformed or mapped program, but the debugging process is presented to the user in terms of the original program. The model can be extended to statement level debugging. A prototype for a subset of Pascal has been implemented. A larger prototype including transformations is being implemented within the DICE system - a programming environment based on incremental compilation. Currently we restrict ourselves to bug localization for terminating programs. Also, side-effects related to pointers are currently not considered.

Cite

CITATION STYLE

APA

Shahmehri, N., & Fritzson, P. (1991). Algorithmic debugging for imperative languages with side-effects. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 477 LNCS, pp. 226–227). Springer Verlag. https://doi.org/10.1007/3-540-53669-8_92

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free