PELAS - Program Error-Locating Assistant System

Error localization in program debugging is the process of identifying program statements which cause incorrect behavior. A prototype of the error localization assistant system which guides a programmer during debugging of Pascal programs is described. The system is interactive: it queries the programmer for the correctness of the program behavior and uses answers to focus the programmer's attention on an erroneous part of the program (in particular, it can localize a faulty statement). The system differs from previous approaches in that it makes use of the knowledge of program structure, which is derived automatically. The knowledge of program structure is represented by the dependence network which is used by the error-locating reasoning mechanism to guide the construction, evaluation, and modification of hypothesis of possible causes of the error. Backtracking reasoning has been implemented in the reasoning mechanism. >

[1]  Aladdin: Assembly Language Assertion Driven Debugging Interpreter , 1979, IEEE Transactions on Software Engineering.

[2]  James A. Reggia,et al.  Diagnostic Expert Systems Based on a Set Covering Model , 1983, Int. J. Man Mach. Stud..

[3]  Janusz W. Laski,et al.  A Data Flow Oriented Program Testing Strategy , 1983, IEEE Transactions on Software Engineering.

[4]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984 .

[5]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .

[6]  Jean-Pierre H. Laurent,et al.  LAURA, A System to Debug Student Programs , 1980, Artif. Intell..

[7]  Leon J. Osterweil,et al.  Toolpack—An Experimental Software Development Environment Research Project , 1983, IEEE Transactions on Software Engineering.

[8]  Randall Davis,et al.  Diagnostic Reasoning Based on Structure and Behavior , 1984, Artif. Intell..

[9]  B. Korel,et al.  A tool for data flow oriented program testing , 1985 .

[10]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

[11]  Richard C. Waters,et al.  The Programmer's Apprentice: Knowledge Based Program Editing , 1982, IEEE Transactions on Software Engineering.

[12]  Robert L. Sedlmeyer,et al.  Knowledge-based fault localization in debugging: preliminary draft , 1983 .

[13]  Peter J. Denning,et al.  Certification of programs for secure information flow , 1977, CACM.

[14]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[15]  Rich Seidner,et al.  Interactive debug requirements , 1983, ACM SIGPLAN Notices.

[16]  Howard E. Shrobe,et al.  Initial Report on a Lisp Programmer's Apprentice , 1978, IEEE Transactions on Software Engineering.

[17]  Donna L. Hudson,et al.  EMERGE-A Data-Driven Medical Decision Making Aid , 1984, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[18]  Elliot Soloway,et al.  PROUST: Knowledge-Based Program Understanding , 1984, IEEE Transactions on Software Engineering.

[19]  Michael R. Genesereth,et al.  The Use of Design Descriptions in Automated Diagnosis , 1984, Artif. Intell..

[20]  Robert L. Sedlmeyer,et al.  Knowledge-based fault localization in debugging , 1983, J. Syst. Softw..

[21]  Thomas E. Cheatham,et al.  Software Technology in the 1990's: Using a New Paradigm , 1983, Computer.

[22]  John A. Gould,et al.  Some Psychological Evidence on How People Debug Computer Programs , 1975, Int. J. Man Mach. Stud..

[23]  Harald Wertz Stereotyped program debugging: an aid for novice programmers , 1982 .

[24]  F. J. Lukey Understanding and debugging programs , 1980 .

[25]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[26]  D. Barstow An Experiment in Knowledge-Based Automatic Programming , 1986, Artif. Intell..

[27]  Robert E. Tarjan,et al.  A fast algorithm for finding dominators in a flowgraph , 1979, TOPL.

[28]  E. Shortliffe Computer-based medical consultations: mycin (elsevier north holland , 1976 .