The Evaluation Dependence Tree as a Basis for Lazy FunctionalDebugging

  • Authors:
  • Henrik Nilsson;Jan Sparud

  • Affiliations:
  • Linköping University, Department of Computer and Information Science, S-581 83 Linköping, Sweden E-mail: henni@ida.liu.se;Chalmers University of Technology, Department of Computing Science, S-412 96 Göteborg, Sweden E-mail: sparud@cs.chalmers.se

  • Venue:
  • Automated Software Engineering
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

Lazy functional languages are declarative and allow the programmer to writeprograms where operational issues such as the evaluation order are leftimplicit. This should be reflected in the design of debuggers for suchlanguages to avoid burdening the programmer with operational details, e.g.concerning the actual evaluation order. Conventional debugging techniques tendto focus too much on operational aspects to be suitable in this context. Arecord of the execution that only captures the declarative aspects of theexecution, leaving out operational details, would be a viable basis fordebugging lazy functional programs. Various declarative debugging tools couldthen be developed on top of such records. In this paper we propose a structurewhich we call the Evaluation Dependence Tree (EDT) for this purpose, and wedescribe two different construction methods. Performance problems arediscussed along with possible solutions.