We present a system which generates interactive high-level debugging systems from formal language definitions. The language definer has to specify a denotational semantics augmented with a formal description of the language specific debugging facilities. The generated debugger offers the traditional features such as tracing programs, setting breakpoints, displaying variables etc; interaction with the user is always on language level rather than on machine level. The concept has been implemented as part of the PSG-Programming System Generator, and has successfully been used to generate debuggers for Pascal and Modula-2. The core of the implementation consists of an interpreter for a functional language, which has been extended with the language-independent mechanisms needed in order to allow interaction with the user during program execution.
[1]
Gregor Snelting,et al.
The PSG system: from formal language definitions to interactive programming environments
,
1986,
TOPL.
[2]
Vincenzo Ambriola,et al.
Automatic generation of execution tools in a GANDALF environment
,
1985,
J. Syst. Softw..
[3]
Gregor Snelting,et al.
Context-sensitive Editing with PSG Environments
,
1986,
Advanced Programming Environments.
[4]
Rich Seidner,et al.
Interactive debug requirements
,
1983,
ACM SIGPLAN Notices.
[5]
Lawrence C. Paulson.
A semantics-directed compiler generator
,
1982,
POPL '82.