Formally Defining Debuggers: A Comparison of Three Approaches.
Karen L. Bernstein, Eugene W. Stark · 1995
Although there is a large body of literature on formal definitions of programming languages, relatively little work has been done in applying formal techniques to defining debuggers. Natural operational semantics, denotational semantics and transitional operational semantics are all proven techniques for formally defining programming languages. In this paper we present techniques for formally defining debuggers based on each of these three styles of definitions. We will investigate each style of definition by demonstrating how a simple debugger might be defined in each framework. 1 Introduction According to a traditional view, a debugger is a tool that allows a programmer to get information about a program by observing the evaluation of the program according to the implementation. From a more general perspective, a debugger can be viewed as a tool that allows the programmer to gain additional insight into a program by observing the behavior of the program according to some well...