Implementing bet, an intelligent bug finder

Allan Blackman · 1993

The goal of this dissertation is to produce a bug finder that, without benefit of prior knowledge of the or program, could produce useful information about logical errors in the program. The goal was achieved with the caveat that much work needs to be done before the program is ready for general or commercial distribution. BET 4.0, a diagnostic BASIC interpreter and bug finder, is described. The software has four components: an interpreter, an editor, and two diagnostic modules, ANALYZE and COMPARE. The interpreter supports a subset of traditional BASIC. The supported features were selected so that the user could write sufficiently diverse programs upon which the diagnostic modules of ANALYZE and COMPARE might operate. BET's line editor allows the user to prepare programs used as fodder for the interpreter, ANALYZE, and COMPARE. ANALYZE is a diagnostic module that performs three functions. First, it reviews every BASIC line in the program for syntax errors. Then it displays a natural language description of each program line directly under the line. Finally, ANALYZE traces the flow of control found in programs, paying attention to the output, if any, produced by each execution path, if reachable. COMPARE is BET's second diagnostic module. It accepts a program designated as the model program and a program designated as the student program, and then determines whether--regardless of structure--they are functionally similar. (Functional similarity means similarity of output given similarity of input, after all branches of the execution tree have been traversed.)

Read the paper · More papers on PaperTik