School of Computing

Replacing unevaluated parts in the traces of functional programs

Yong Luo and Olaf Chitil

Technical report 7-07, University of Kent, Computing Laboratory, UK, August 2007.

Abstract

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. _) 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 _. The most important property, the correctness of algorithmic debugging, is proved.

Download publication 382 kbytes (PDF)

Bibtex Record

@techreport{2643,
author = {Yong Luo and Olaf Chitil},
title = {Replacing unevaluated parts in the traces of functional programs},
month = {August},
year = {2007},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {},
url = {http://www.cs.kent.ac.uk/pubs/2007/2643},
    publication_type = {techreport},
    submission_id = {19512_1201810582},
    type = {Technical report},
    number = {7-07},
    address = {UK},
    institution = {University of Kent, Computing Laboratory},
}

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 21/03/2014