A Knowledge Based Approach to Program Debugging

Abstract

We are exploring the use of executable specifications in automating the process of debugging logic programs. We have formulated a computer model that encodes programming knowledge including a classification of program bugs, heuristics that analyze and repair program errors, and operational semantics off the language, and is capable of reasoning with programs and their specifications. The realization of our methodology is the Constructive Interpreter which functions as a debugger as well as program synthesizer. It contains three major components: test case generator, bug locator, and bug corrector. The test case generator can generate test data systematically by executing specifications. The bug locator will automatically locate a bug should the program fail to compute an answer that agrees with the specifications. The bug corrector will analyze the nature of the bug and invoke correction heuristics which might involve the use of (1) a deductive theorem prover which will try to construct a proof and deduce sufficient conditions to amend the program, and (2) an inductive program generator which will synthesize the missing part of the program. In this paper, we present our approach and an implementation of the experimental prototype debugger. (KR)

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Sep 13, 1989
Accession Number
ADA214941

Entities

People

  • Yuh-jeng Lee

Organizations

  • Naval Postgraduate School

Tags

Communities of Interest

  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Artificial Intelligence
  • Automatic Programming
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Debugging
  • Information Systems
  • Language
  • Programming Languages
  • Prototypes
  • Reasoning
  • Software Development
  • Software Prototyping
  • Software Testing
  • Test Methods
  • Trees (Data Structures)

Fields of Study

  • Computer science
  • Engineering

Readers

  • Artificial Intelligence
  • Computer Science.