Luo, Yong and Chitil, Olaf
Replacing unevaluated parts in the traces of functional programs.
University of Kent, Canterbury, Kent, Canterbury, Kent
In non-strict functional programming languages such as Haskell, it happens often that some parts of a program are not evaluated because their values are not demanded. In practice, those unevaluated parts are often replaced by a placeholder (e.g. <sub>)</sub> in order to keep the trace size smaller. In the process of algorithmic debugging, one needs to answer several questions in order to locate a program fault. Replacing unevaluated parts makes these questions shorter and semantically clearer. In this paper, we present a formal model of tracing in which unevaluated parts are replaced by the symbol <sub>.</sub> The most important property, the correctness of algorithmic debugging, is proved.
- Depositors only (login required):