Adding Traces to a Lazy Monadic Evaluator

  • Authors:
  • Cristóbal Pareja;Ricardo Pena;Fernando Rubio;Clara Segura

  • Affiliations:
  • -;-;-;-

  • Venue:
  • Computer Aided Systems Theory - EUROCAST 2001-Revised Papers
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

The debugging of lazy functional programs is a non yet satisfactorily solved problem. Different approaches have been proposed during the last years, all of them having a property in common: The graph produced by the traced program is different from the original graph, i.e. the one without traces. In this paper we propose a cleaner and more modular approach to the trace problem. We regard traces as observations of the program and at the same time we want to preserve the original graph. In this way, a clean separation between the trace and the program being observed is established. Consequently, there may be variables in the trace referencing parts of the graph (i.e. pointers from the trace to the graph), but not the other way around. By doing so the correctness is guaranteed, as the normal execution process is not altered. In order to reach this goal, a monadic approach is followed. The success of the approach is shown by simulating three up-to-date Haskell tracers.