Communications of the ACM
The Cornell program synthesizer: a syntax-directed programming environment
Communications of the ACM
Interactive program execution in Lispedit
SIGSOFT '83 Proceedings of the ACM SIGSOFT/SIGPLAN software engineering symposium on High-level debugging
Two systems which produce animated representations of the execution of computer programs
SIGCSE '75 Proceedings of the fifth SIGCSE technical symposium on Computer science education
Lisp machine manual
UnicStep-a visual stepper for COMMON LISP: portability and language aspects
ACM SIGPLAN Lisp Pointers
Programming as driving: unsafe at any speed?
CHI '95 Conference Companion on Human Factors in Computing Systems
Bridging the gulf between code and behavior in programming
CHI '95 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Experience with an uncommon Lisp
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Reversible Object-Oriented Interpreters
ECOOP '87 Proceedings of the European Conference on Object-Oriented Programming
An Object-Oriented Exception Handling System for an Object-Oriented Language
ECOOP '88 Proceedings of the European Conference on Object-Oriented Programming
Visualizing evolutionary computation
Advances in evolutionary computing
A user-centred approach to functions in Excel
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Annotation-based program stepping
ACM SIGPLAN Lisp Pointers
ACM SIGPLAN Lisp Pointers
Science of Computer Programming
A Review of Generic Program Visualization Systems for Introductory Programming Education
ACM Transactions on Computing Education (TOCE)
Hi-index | 0.00 |
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. In this paper, 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 level 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.