Results 1 -
4 of
4
Buddha - A Declarative Debugger for Haskell
, 1998
"... Due to their reliance on the execution order of programs, traditional debugging techniques are not well suited to locating the source of logical errors in programs written in lazy functional languages. We describe the implementation of a declarative debugger for the programming language Haskell, whi ..."
Abstract
-
Cited by 12 (1 self)
- Add to MetaCart
Due to their reliance on the execution order of programs, traditional debugging techniques are not well suited to locating the source of logical errors in programs written in lazy functional languages. We describe the implementation of a declarative debugger for the programming language Haskell, which assists the location of logical errors based on the declarative semantics of program definitions. The implementation is based on the Hugs interpreter, and both solidifies previous work in the field and extends it to incorporate features typical of many modern lazy functional languages. Contents 1 Introduction 1 2 Haskell 2 2.1 Background : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 2.2 Haskell is a lazy language : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 2.3 Haskell is a higher--order language : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 2.4 Haskell is purely functional : : : : : : : : : : :...
Tracing Lazy Functional Languages
- In Proceedings of Computing: The Australasian Theory Symposium
, 1996
"... We argue that Ariola and Felleisen's and Maraist, Odersky and Wadler's call-byneed lambda calculus forms a suitable formal basis for tracing evaluation in lazy functional languages. Keywords Functional programming, tracing, call-by-need, lambda calculus, lazy evaluation. 1 Tracing functional languag ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
We argue that Ariola and Felleisen's and Maraist, Odersky and Wadler's call-byneed lambda calculus forms a suitable formal basis for tracing evaluation in lazy functional languages. Keywords Functional programming, tracing, call-by-need, lambda calculus, lazy evaluation. 1 Tracing functional languages One major advantage of pure, and especially lazy, functional languages over more conventional imperative languages is in not having to directly and completely specify the order of execution of a program. Leaving execution order unspecified allows the compiler or interpreter to perform transformations on the code, changing the order of execution and perhaps even executing parts of the program in parallel. However, when it comes to debugging a program, this feature turns into a disadvantage. In a more conventional language, one can `trace' execution by inserting write statements in interesting places in order to monitor what is happening. More sophisticated tracing systems provide step-b...
Walk Backwards to Happiness—Debugging by Time Travel
, 1997
"... In circumstances when a variable in a program has an incorrect value the process of debugging it is often a process about discovering the history of that variable, or rather the ancestry of the value that it contains. In this paper we propose a new technique for debugging that revolves around being ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
In circumstances when a variable in a program has an incorrect value the process of debugging it is often a process about discovering the history of that variable, or rather the ancestry of the value that it contains. In this paper we propose a new technique for debugging that revolves around being able to trace back through the history of a particular variable or variables that it depends upon. Our development is in the domain of functional programming as the proposal has particular significance in this domain due to the fact that so many standard debugging techniques cannot be used at all.
Signed Date
"... The work presented in this thesis is, to the best of my knowledge and belief, original, except as acknowledged in the text. The material in this thesis has not been submitted, either in whole or in part, for a degree at this or any other university. ..."
Abstract
- Add to MetaCart
The work presented in this thesis is, to the best of my knowledge and belief, original, except as acknowledged in the text. The material in this thesis has not been submitted, either in whole or in part, for a degree at this or any other university.

