Abstract

Debugging and Tracing Functional Programs

Programmers need support for debugging programs written in functional programming languages. Conventional debugging methods and tracing tools are ill-suited for these languages, in particular pure, lazy languages such as Haskell. Hence different methods and tools that are arguable more powerful have been developed. These tracing tools and debugging methods take advantage of the simple semantics of pure functional languages, that is, explicit data flow and absence of side effects. The view presented by a tool is often inspired by a particular semantic formalism. I will describe and demonstrate several methods and tools and compare them.