Debugging Haskell Programs By Asking The Oracle
Room: BBL room 471
Speaker: Holger Siegel
Title: Debugging Haskell programs by asking the oracle
The usual techniques of debugging imperative programs can not be applied to
declarative programs, because there is no sequential order of evaluation. Our
approach is to evaluate the program that is to be debugged twice. First it is
evaluated in lazy evaluation order, memorizing which subterms have to be
evaluated and which subterms are not needed and can therefore be skipped. Using
this information, the so-called oracle, the program can be run in strict
evaluation order, skipping the unneeded - possibly diverging - subterms. So, in
this second run a variety of debugging techniques can be applied that would be
impossible when evaluating the program in lazy order.
In my diploma thesis I build this technique into the EHC Haskell compiler.