This article describes the implementation of a debugger for lazy functional languages like Haskell. The key idea is to construct a declarative trace which hides the operational details of lazy evaluation. However, to avoid excessive memory consumption, the trace is constructed one piece at a time, as needed during a debugging session, by automatic re-execution of the program being debugged. The article gives a fairly detailed account of both the underlying ideas and of our implementation, and also presents performance figures which demonstrate the feasibility of the approach.
The debugging of lazy functional programs is a non yet satisfactorily solved problem. In recent year...
Existing algorithmic debuggers for Haskell require a transformation of all modules in a program, eve...
AbstractWe present a declarative debugger for lazy functional logic programs with polymorphic type d...
. Lazy functional languages have non-strict semantics and are purely declarative, i.e. they support ...
AbstractThis paper is based on a recently developed technique to build debugging tools for lazy func...
Designing debugging tools for lazy functional programming languages is a complex task which is often...
This paper is based on a recently developed technique to build debugging tools for lazy functional p...
It is not easy to debug lazy functional programs. The reason is that laziness and higherorder compli...
In this paper we compare three systems for tracing and debugging Haskell programs: Freja, the Redex ...
A computation tree of a program execution describes computations of functions and their dependencies...
We present a trace-based debugging environment for a lazy functional language. We argue that traces ...
An algorithmic debugger finds defects in programs by systematic search. It relies on the programmer ...
We present a declarative debugger for lazy functional logic programs with polymorphic type disciplin...
Due to their reliance on the execution order of programs, traditional debugging techniques are not w...
In this paper we present a debugging model for a lazy functional logic programming language whose se...
The debugging of lazy functional programs is a non yet satisfactorily solved problem. In recent year...
Existing algorithmic debuggers for Haskell require a transformation of all modules in a program, eve...
AbstractWe present a declarative debugger for lazy functional logic programs with polymorphic type d...
. Lazy functional languages have non-strict semantics and are purely declarative, i.e. they support ...
AbstractThis paper is based on a recently developed technique to build debugging tools for lazy func...
Designing debugging tools for lazy functional programming languages is a complex task which is often...
This paper is based on a recently developed technique to build debugging tools for lazy functional p...
It is not easy to debug lazy functional programs. The reason is that laziness and higherorder compli...
In this paper we compare three systems for tracing and debugging Haskell programs: Freja, the Redex ...
A computation tree of a program execution describes computations of functions and their dependencies...
We present a trace-based debugging environment for a lazy functional language. We argue that traces ...
An algorithmic debugger finds defects in programs by systematic search. It relies on the programmer ...
We present a declarative debugger for lazy functional logic programs with polymorphic type disciplin...
Due to their reliance on the execution order of programs, traditional debugging techniques are not w...
In this paper we present a debugging model for a lazy functional logic programming language whose se...
The debugging of lazy functional programs is a non yet satisfactorily solved problem. In recent year...
Existing algorithmic debuggers for Haskell require a transformation of all modules in a program, eve...
AbstractWe present a declarative debugger for lazy functional logic programs with polymorphic type d...