Introducing debugging capabilities to natural semantics

  • Authors:
  • Alberto de la Encina;Luis Llana;Fernando Rubio

  • Affiliations:
  • Departamento de Sistemas Informáticos y Programación Facultad de Informática, Universidad Complutense de Madrid, Madrid, Spain;Departamento de Sistemas Informáticos y Programación Facultad de Informática, Universidad Complutense de Madrid, Madrid, Spain;Departamento de Sistemas Informáticos y Programación Facultad de Informática, Universidad Complutense de Madrid, Madrid, Spain

  • Venue:
  • PSI'06 Proceedings of the 6th international Andrei Ershov memorial conference on Perspectives of systems informatics
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Reasoning about functional programs is simpler than reasoning about their imperative counterparts. However, finding bugs in lazy functional languages has been more complex until quite recently. The reason was that not much work was done on developing practical debuggers. Fortunately, several debuggers exist nowadays. One of the easiest to use Haskell debuggers is Hood, whose behavior is based on the concept of observation of intermediate data structures. However, although using Hood can be simple when observing some structures, it is known that it can be hard to understand how it works when dealing with complex situations. In this paper, we formalize the behavior of the Hood debugger by extending Sestoft's natural semantics. Moreover, we also indicate how to derive an abstract machine including such debugging information. By doing so, we do not only provide a formal foundation, but we also provide an alternative method to implement debuggers. In fact, we have already implemented a prototype of the abstract machine commented in this paper.