Abstract

Tracing Computations of Functional Programs

I will start with an overview of specific features of functional programs. Because of these features, functional programmers understand computations better with non-traditional debugging techniques. Promising techniques for viewing computations of functional programs are the observation of values, algorithmic debugging, redex trailing and their combinations. Most existing tools are limited in practice by their complex tracing methods. Andy Gill developed a simple tracing method for value observations. His tracing method requires only importing a library and adding small annotations in a traced program. Maarten Faddegon and I extended the method to obtaining computation trees for algorithmic debugging. We can even use a modified tracing method for generating a very detailed trace, the augmented redex trail, which supports several different debugging techniques. I will end with a list of open challenges in tracing and debugging functional programs.