A Debugger for standard ML

34Citations
Citations of this article
15Readers
Mendeley users who have this article in their library.

Abstract

We have built a portable, instrumentation-based, replay debugger for the Standard ML of New Jersey compiler. Traditional 'source-level’ debuggers for compiled languages actually operate at machine level, which makes them complex, difficult to port, and intolerant of compiler optimization. For secure languages like ML, however, debugging support can be provided without reference to the underlying machine, by adding instrumentation to program source code before compilation. Because instrumented code is (almost) ordinary source, it can be processed by the ordinary compiler. Our debugger is thus independent from the underlying hardware and runtime system, and from the optimization strategies used by the compiler. The debugger also provides reverse execution, both as a user feature and an internal mechanism. Reverse execution is implemented using a checkpoint and replay system; checkpoints are represented primarily by first-class continuations. © 1995, Cambridge University Press. All rights reserved.

Cite

CITATION STYLE

APA

Tolmhch, A., & Appel, A. W. (1995). A Debugger for standard ML. Journal of Functional Programming, 5(2), 155–200. https://doi.org/10.1017/S0956796800001313

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free