Lazy algorithmic debugging: Ideas for practical implementation

  • Henrik Nilsson
  • Peter Fritzson
Debugging Functional Programs

DOI: 10.1007/BFb0019405

Part of the Lecture Notes in Computer Science book series (LNCS, volume 749)
Cite this paper as:
Nilsson H., Fritzson P. (1993) Lazy algorithmic debugging: Ideas for practical implementation. In: Fritzson P.A. (eds) Automated and Algorithmic Debugging. AADEBUG 1993. Lecture Notes in Computer Science, vol 749. Springer, Berlin, Heidelberg

Abstract

Lazy functional languages have non-strict semantics and are purely declarative, i.e. they support the notion of referential transparency and are devoid of side effects. Traditional debugging techniques are, however, not suited for lazy functional languages since computations generally do not take place in the order one might expect. Since algorithmic debugging allows the user to concentrate on the declarative aspects of program semantics, and will semi-automatically find functions containing bugs, we propose to use this technique for debugging lazy functional programs. Our earlier work showed that this is a promising approach. However, the current version of our debugger has severe implementational problems, e.g. too large trace size and too many questions asked. This paper suggests a number of techniques for overcoming these problems, at least partially. The key techniques are immediate strictification and piecemeal tracing.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag 1993

Authors and Affiliations

  • Henrik Nilsson
    • 1
  • Peter Fritzson
    • 1
  1. 1.Programming Environments Laboratory Department of Computer and Information ScienceLinköping UniversityLinköpingSweden

Personalised recommendations