@inproceedings{a57ef0d8e9ac496d93e2fbdbcfbaaf38,
title = "Debugging standard ML without reverse engineering",
abstract = "We have built a novel and efficient replay debugger for our Standard ML compiler. Debugging facilities are provided by instrumenting the user's source code; this approach, made feasible by ML's safety property, is machine-independent and back-end independent. Replay is practical because ML is normally used functionally, and our compiler uses continuation-passing style; thus most of the program's state can be checkpointed quickly and compactly using call-with-current-continuation. Together, instrumentation and replay support a simple and elegant debugger featuring full variable display, polymorphic type resolution, stack trace-back, breakpointing, and reverse execution, even though our compiler is very highly optimizing and has no run-time stack.",
author = "Tolmach, {Andrew P.} and Appel, {Andrew W.}",
year = "1990",
doi = "10.1145/91556.91564",
language = "English (US)",
isbn = "089791368X",
series = "Proc 1990 ACM Conf LISP Funct Program",
publisher = "Publ by ACM",
pages = "1--12",
booktitle = "Proc 1990 ACM Conf LISP Funct Program",
note = "Proceedings of the 1990 ACM Conference on LISP and Functional Programming ; Conference date: 27-06-1990 Through 29-06-1990",
}