The design and implementation of a dataflow language for scriptable debugging

Debugging is a laborious, manual activity that often involves the repetition of common operations. Ideally, users should be able to describe these repetitious operations as little programs. Debuggers should therefore be programmable, or scriptable. The operating environment of these scripts, however, imposes interesting design challenges on the programming language in which these scripts are written.This paper presents our design of a language for scripting debuggers. The language offers powerful primitives that can precisely and concisely capture many important debugging and comprehension metaphors. The paper also describes a pair of debuggers, one for Java and the other for Scheme, built in accordance with these principles. The paper includes concrete examples of applying this debugger to programs.

[1]  Michael Golan A VERY HIGH LEVEL DEBUGGING LANGUAGE , 1994 .

[2]  Douglas R. Smith A Generative Approach to Aspect-Oriented Programming , 2004, GPCE.

[3]  Matthias Felleisen,et al.  DrScheme: a programming environment for Scheme , 2002, J. Funct. Program..

[4]  Harold Abelson,et al.  Revised5 report on the algorithmic language scheme , 1998, SIGP.

[5]  Ilya Gertner,et al.  High-level debugging in parasight , 1988, PADD '88.

[6]  Matthias Felleisen,et al.  Programming languages as operating systems (or revenge of the son of the lisp machine) , 1999, ICFP '99.

[7]  Shriram Krishnamurthi,et al.  Embedding Dynamic Dataflow in a Call-by-Value Language , 2006, ESOP.

[8]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[9]  Raimondas Lencevicius,et al.  On-the-fly query-based debugging with examples , 2000, AADEBUG.

[10]  Matthias Felleisen,et al.  A tail-recursive machine with stack inspection , 2004, TOPL.

[11]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[12]  Raimondas Lencevicius Static Query-Based Debugging , 2000 .

[13]  Jonathan Rees,et al.  Revised3 report on the algorithmic language scheme , 1986, SIGP.

[14]  Mireille Ducassé,et al.  Coca: an automated debugger for C , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[15]  Robert Hieb,et al.  Revised 5 Report on the Algorithmic Language , 1999 .

[16]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[17]  Richard H. Crawford,et al.  Semantic issues in the design of languages for debugging , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[18]  Richard H. Crawford,et al.  Dalek: A GNU, Improved Programmable Debugger , 1990, USENIX Summer.

[19]  Shriram Krishnamurthi,et al.  A dataflow language for scriptable debugging , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[20]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[21]  David R. Hanson,et al.  A simple and extensible graphical debugger , 1997 .

[22]  Clinton L. Jeffery,et al.  A lightweight architecture for program execution monitoring , 1998, PASTE '98.

[23]  Antony Courtney,et al.  Frappé: Functional Reactive Programming in Java , 2001, PADL.

[24]  David R. Hanson,et al.  DUEL - A Very High-Level Debugging Language , 1993, USENIX Winter.

[25]  Clinton Jeffery,et al.  A framework for automatic debugging , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[26]  Bernd Brügge,et al.  Generalized path expressions: A high level debugging mechanism (Preliminary Draft) , 1983, SIGSOFT '83.

[27]  Mark Scott Johnson DISPEL: A Run-Time Debugging Language , 1981, Comput. Lang..

[28]  Bernd Bruegge,et al.  Generalized path expressions: A high level debugging mechanism (Preliminary Draft) , 1983, SIGSOFT '83.

[29]  Phil Winterbottom ACID: A Debugger Built From A Language , 1994, USENIX Winter.

[30]  Ambuj K. Singh,et al.  Dynamic Query-Based Debugging of Object-Oriented Programs , 2004, Automated Software Engineering.

[31]  D. H. Bartley,et al.  Revised4 report on the algorithmic language scheme , 1991, LIPO.

[32]  Paul Hudak,et al.  Functional reactive animation , 1997, ICFP '97.

[33]  R. Kent Dybvig,et al.  Revised5 Report on the Algorithmic Language Scheme , 1986, SIGP.