Abstract:
The tracing of conventional imperative languages is straightforward, and tracing is probably the most common debugging technique in use today. However, attempting blindly to trace pure functional languages, especially lazy functional languages, does not work due to the fundamentally different model of execution. We claim that Ariola, Felleisen, Maraist, Odersky and Wadler's call-by-need lambda calculus provides a suitable formal model upon which to build a tracer for a lazy functional language, and we demonstrate this by exhibiting such a tracer, LetTrace. We also discuss a number of issues encountered in the implementation of this system, and propose a few
Citations
|
1128
|
Monads for functional programming
– Wadler
- 1992
|
|
259
|
The Calculi of Lambda-Conversion
– Church
- 1941
|
|
245
|
The Lambda Calculus: Its Syntax and Semantics, volume 103
– Barendregt
- 1984
|
|
204
|
The revised report on the syntactic theories of sequential control and state
– Felleisen, Hieb
- 1992
|
|
203
|
The lazy lambda calculus
– Abramsky
- 1990
|
|
155
|
The call-by-need lambda calculus
– Ariola, Felleisen, et al.
- 1995
|
|
131
|
Call-by-name, call-by-value, and the lambda calculus
– Plotkin
- 1975
|
|
96
|
Semantics and Pragmatics of the Lambda Calculus
– Wadsworth
- 1971
|
|
54
|
The implementation of the Gofer functional programming system
– Jones
- 1994
|
|
53
|
A Set of Postulates for the Foundation of Logic
– Church
- 1932
|
|
28
|
Control operators, the SECD-machine, and the lambda-calculus
– Felleisen, Friedman
- 1986
|
|
28
|
The call-by-need lambda calculus
– Maraist, Odersky, et al.
- 1998
|
|
25
|
Call-by-name, call-by-value, call-by-need and the linear lambda calculus
– Maraist, Odersky, et al.
- 1999
|
|
15
|
A User’s Manual for MetaPost. Computer science technical report. AT&T Bell Laboratories. CSTR-162
– Hobby
- 1992
|
|
13
|
Call-by-need and continuation-passing style
– Okasaki, Lee, et al.
- 1994
|
|
11
|
unknown title
– Jones
- 1991
|
|
3
|
Cerno-II: A program visualisation system
– Fenwick, Hosking, et al.
- 1994
|
|
2
|
The callby -need lambda calculus (unabridged
– Maraist, Odersky, et al.
- 1994
|
|
2
|
A call-by-need lambda calculus. Presentation at CATS'94
– Wadler
- 1994
|
|
1
|
Tracing lazy functional languages. Submitted to Computing: the Australian Theory Symposium
– Gibbons, Wansbrough
- 1996
|