BIB-VERSION:: CS-TR-v2.0 ID:: SBCS//stark/stmalo.ps.Z ENTRY:: April 5, 1995 ORGANIZATION:: State University of New York at Stony Brook, Computer Science TITLE:: On Formally Defining Debuggers TYPE:: Preprint AUTHOR:: Bernstein, Karen L., and Stark, Eugene W. CONTACT:: Eugene W. Stark, Department of Computer Science, SUNY at Stony Brook, Stony Brook, NY 11794-4400 Tel: 516-632-8444 DATE:: April, 1995 RETRIEVAL:: HTTP from BSD7.CS.SUNYSB.EDU with the URL http://bsd7.cs.sunysb.edu/~stark/REPORTS/stmalo.ps.gz ABSTRACT:: 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.