Steps toward better debugging tools for LISP

Steps toward better debugging tools for LISP
复制标题

更好的 LISP 调试工具的步骤

DOI:
10.1145/800055.802041
复制
发表时间:
1984
期刊:
--
影响因子:
--
通讯作者:
H. Lieberman
H. Lieberman
中科院分区:
--
文献类型:
--
作者:
H. Lieberman

文献摘要

被引文献

相似文献

尽管当代Lisp系统以其出色的调试功能而闻名,但仍然迫切需要更好的调试工具。在大多数实现中发现的工具的一个基本缺陷是,它们面向检查特定的程序或数据。而且它们在定位大量代码中的错误的过程中几乎没有提供任何帮助。在传统的工具中,步进器是可视化程序操作的最佳辅助工具,其方式是可以在不事先知道其位置的情况下发现错误。但踏步机并不受欢迎,主要是因为它们往往过于冗长,难以控制。 在本文中,我们提出了一个新的步进Lisp,Zstep。其将步进器与实时全屏文本编辑器集成以显示程序和数据。Zstep通过可视化地将表达式替换为其值来表示Lisp表达式的求值,符合求值作为替换过程的直观模型。Zstep的控制结构允许用户“放大”bug。首先在非常粗略的细节级别上检查程序,然后在越来越精细的级别上检查,直到找到bug。Zstep保留了评估的历史记录,可以向前或向后运行。Zstep从作者的面向示例的编程环境中借用了一些技术。修补匠包括处理错误条件的新方法。
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.