Heuristic and formal methods in automatic program debugging

  • Authors:
  • William R. Murray

  • Affiliations:
  • Department of Computer Sciences, University of Texas at Austin, Austin, Texas

  • Venue:
  • IJCAI'85 Proceedings of the 9th international joint conference on Artificial intelligence - Volume 1
  • Year:
  • 1985

Quantified Score

Hi-index 0.00

Visualization

Abstract

TALUS is an automatic program debugging system that both detects and corrects nonsyntactic bugs in student programs written to solve small but nontrivial tasks in pure LISP. TALUS permits significant variability in student solutions by using heuristic methods to recognize different algorithms and formal methods to reason about computational equivalence of program fragments. A theorem prover intensionally represents an infinite database of rewrite rules, thus allowing for unanticipated implementations. TALUS detects bugs using formal methods in both symbolic evaluation and case analysis. Heuristic methods conjecture the exact location of bugs and alterations necessary to correct the bugs. Finally, formal methods establish or disprove these heuristic conjectures, reflecting a generate and test methodology.