Debugging is famously one the hardest parts in programming. In this paper, we tackle the question: what does a debugging environment look like when we take interactive visualization as a central design principle? We introduce Anteater, an interactive visualization system for tracing and exploring the execution of Python programs. Existing systems often have visualization components built on top of an existing infrastructure. In contrast, Anteater's organization of trace data enables an intermediate representation which can be leveraged to automatically synthesize a variety of visualizations and interactions. These interactive visualizations help with tasks such as discovering important structures in the execution and understanding and debugging unexpected behaviors. To assess the utility of Anteater, we conducted a participant study where programmers completed tasks on their own python programs using Anteater. Finally, we discuss limitations and where further research is needed.
翻译:调试被认为是编程中最困难的部分之一。在本文中,我们探讨了一个问题:当我们将交互式可视化作为核心设计原则时,调试环境会是什么样子?我们介绍了Anteater,一个用于追踪和探索Python程序执行的交互式可视化系统。现有系统通常在其基础设施之上构建可视化组件。相比之下,Anteater的追踪数据结构组织方式能够生成一种中间表示形式,这种中间表示可用于自动合成多种可视化与交互功能。这些交互式可视化有助于完成发现执行过程中的重要结构、理解并调试意外行为等任务。为评估Anteater的实用性,我们开展了一项参与者研究:程序员使用Anteater在各自的Python程序上完成任务。最后,我们讨论了当前存在的局限性以及未来需要进一步研究的方向。