LISP and Symbolic Computation

, Volume 5, Issue 3, pp 271–287 | Cite as

A debugging environment for lazy functional languages

  • Guy Lapalme
  • Mario Latendresse
Article

Abstract

This paper describes a new approach for debugging lazy functional languages. It rests on the fact that a functional program is the transformation of an expression; one debugs a program by investigating the syntactic form of the expression and by stopping the reduction process at given points. We show what problems are involved and our approach to solving them in a prototype implementation.

Keywords

Operating System Artificial Intelligence Reduction Process Functional Program Prototype Implementation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Augustsson, L. A Compiler for Lazy ML. InProceedings of the ACM Symposium on Lisp and Functional Programming (1984) 218–227.Google Scholar
  2. 2.
    Hall, Cordelia V. and O'Donnell, John T. Debugging in applicative languages.Journal of Lisp and Symbolic Computation, 1, 1 (1988).Google Scholar
  3. 3.
    Hudak, P. and Wadler (editors), P.Report on the Programming Language Haskell, A Non-strict Purely Functional Language (Version 1.1). Technical Report, Yale University, Department of Computer Science (August 1991).Google Scholar
  4. 4.
    Latendresse, M.Un environnement de mise au point de programmes écrits dans un langage fonctionnel à évaluation paresseuse. Master's thesis, Départment d'informatique et de recherche opérationnelle, Université de Montréal (1990).Google Scholar
  5. 5.
    Lieberman, Henry. Steps towards better debugging tools for Lisp. InProceedings of the ACM Conference on Lisp and Functional Programming (1984) 247–255.Google Scholar
  6. 6.
    Milner, R. How ML evolved.Polymorphism, 1, 1 (1983) 1–6.Google Scholar
  7. 7.
    Milner, R., Tofte, M., and Harper, R.The Definition of Standard ML. MIT Press (1990).Google Scholar
  8. 8.
    Peyton-Jones, S. L.Directions in Functional Programming Research. Technical Report InDRA note 1575, Department of Computer Science, University College, London (1985).Google Scholar
  9. 9.
    Peyton-Jones, S. L.The Implementation of Functional Programming Languages. Prentice-Hall (1987).Google Scholar
  10. 10.
    Runciman, C. and Toyn, I. Adapting combinator and SECD machines to display snapshots of functional computations.New Generation Computing, 4 (1986) 339–363.Google Scholar
  11. 11.
    Snyder, Robin M. Lazy debugging of lazy functional language.New Generation Computing, 8, 139–161 (1990).Google Scholar
  12. 12.
    Turner, D. A. A new implementation technique for applicative languages.Software — Practice and Experience, 9 (1979) 31–49.Google Scholar

Copyright information

© Kluwer Academic Publishers 1992

Authors and Affiliations

  • Guy Lapalme
    • 1
  • Mario Latendresse
    • 2
  1. 1.Département d'informatique et de recherche opérationnelleUniversité de MontréalSucc „A“, MontréalCanada
  2. 2.Centre de recherche informatique de MontréalMontréalCanada

Personalised recommendations