[net.ai] Seminar - LISP Debugger

HENRY%MIT-OZ@MIT-MC.ARPA (07/28/84)

           [Forwarded from the MIT bboard by SASW@MIT-MC.]

Steps Toward Better Debugging Tools For Lisp

Henry Lieberman

Thursday, 2 August 1984, 3 PM
7th floor playroom, 545 Technology Square

Although contemporary Lisp systems are renown for their excellent debugging
facilities, better debugging tools are still urgently needed.  A basic flaw
with the tools found in most implementations is that they are oriented
towards inspection of specific pieces of program or data, and they offer
little help in the process of localizing bugs within a large body of code.
Among conventional tools, a stepper is the best aid for visualizing the
operation of a procedure in such a way that a bug can be found without prior
knowledge of its location.  But steppers have not been popular, largely
because they are often too verbose and difficult to control.

We present a new stepper for Lisp, Zstep, which integrates a stepper with a
real-time full-screen text editor to display programs and data.  Zstep
presents evaluation of a Lisp expression by visually replacing the expression
by its value, conforming to an intuitive model of evaluation as a
substitution process.  The control structure of Zstep allows a user to "zoom
in" on a bug, examining the program first at a very coarse level of detail,
then at increasingly finer levels until the bug is located.  Zstep keeps a
history of evaluations, and can be run either forward or backward.  Zstep
borrows several techniques from the author's example-oriented programming
environment, Tinker, including a novel approach to handling error conditions.

A videotaped demonstration of Zstep will be shown.