| Jeremy Gibbons and Keith Wansbrough. Tracing lazy functional languages. In Proceedings of Computing: The Australasian Theory Symposium", January 1996. |
....semantic level is similar to using traditional imperative language debuggers. The user navigates through a program execution space, comparing the observed program behaviour with that expected any divergence between the two indicating a potential error. A number of systems have been described [1, 3, 4, 5, 22] which display the evaluation of pure functional programs, and so could be used to perform semantic debugging. In this paper we describe a tool that allows a user to browse or navigate over the trace of evaluation of a lazy functional language. We differ from previous authors in that we generate ....
....a user to browse or navigate over the trace of evaluation of a lazy functional language. We differ from previous authors in that we generate a textual reduction trace, based on a simple formal model for lazy evaluation, and identify advanced navigation features. Others have employed a formal model [4], and examined novel ways of traversing graphical traces [3, 22] but we believe that our evaluation model is simpler and that textual traces are often superior to graphical traces [17] as they correspond to program concrete syntax. The browser can be used to debug a program (at the semantic ....
Jeremy Gibbons and Keith Wansbrough. Tracing lazy functional languages. In Proceedings of Computing: The Australasian Theory Symposium", January 1996.
.... special rules depending on the type of a function argument (Sparud, 1996) or failed to satisfactorily address how curried application is traced (Naish and Barbour, 1996) Our model is a big step operational semantics based very closely on the work of Launchbury (1993) To our knowledge, only Gibbons and Wansbrough (1996) have built a tracing system based on a formally defined reduction model (in their case, the lazy lambda calculus of Ariola et al. 1995) we believe the Launchbury style of operational model is superior to that of Ariola et al. as a means of trace definition because it is simpler, with fewer ....
....(representative work is cited) 1. modify the standard program translator to produce compiled code which, on execution, will generate a trace (Snyder, 1990; Nilsson and Fritzson, 1994) 2. build a special purpose interpreter which reports its evaluation steps (Goldson, 1994; Augustson, 1995; Gibbons and Wansbrough 1996). 3. transform the original program so that evaluation of the instrumented program generates a trace (O Donnell and Hall, 1988; Sparud, 1996; Naish and Barbour 1996) While all these schemes have their merits, we have chosen to employ the program instrumentation approach. This yields a portable ....
J. Gibbons and K. Wansbrough. Tracing lazy functional languages. In Proceedings of Computing: The Australasian Theory Symposium", 1996.
....shared expressions expression (x: Add x) x) Add Delta 1 ) Delta 1 ) whereas Bird and Wadler would have to use a series of diagrams with arrows, such as the diagram in Figure 8. In this section we briefly describe the most interesting parts of the implementation. For further details, see [25]. 3.1 Renaming and substitution The first problem we encountered is that Barendregt s variable convention is an unrealistic assumption in practice. For starters, we cannot assume that a user s program will satisfy it. More seriously, literal application of the reduction rules can break the ....
Keith Wansbrough. Tracing lazy functional languages. Graduate project report, Department of Computer Science, University of Auckland, 1995.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC