Debugging Haskell Programs By Asking The Oracle

Stc
Date: 2008-06-26

Time: 12:00

Room: BBL room 471

Speaker: Holger Siegel

Title: Debugging Haskell programs by asking the oracle

Abstract

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.