Loading…

A Declarative Debugging System for Lazy Functional Logic Programs

We present a declarative debugger for lazy functional logic programs with polymorphic type discipline. Whenever a 0computed answer is considered wrong by the user (error symptom), the debugger locates a program fragment (function defining rule) responsible for the error. The notions of symptom and e...

Full description

Saved in:
Bibliographic Details
Published in:Electronic notes in theoretical computer science 2002-09, Vol.64, p.113-175
Main Authors: Caballero, Rafael, RodrĂ­guez-Artalejo, Mario
Format: Article
Language:English
Citations: Items that this one cites
Items that cite this one
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:We present a declarative debugger for lazy functional logic programs with polymorphic type discipline. Whenever a 0computed answer is considered wrong by the user (error symptom), the debugger locates a program fragment (function defining rule) responsible for the error. The notions of symptom and error have a declarative meaning w.r.t. to an intended program semantics. Debugging is performed by searching in a computation tree which is a logical representation of the computation. Following a known technique, our tool is based on a program transformation: transformed programs return computation trees along with the results expected by source programs. Our transformation is provably correct w.r.t. well-typing and program semantics. As additional improvements w.r.t. related approaches, we solve a previously open problem concerning the use of curried functions, and we provide a correct method for avoiding redundant questions to the user during debugging. A prototype implementation of the debugger is available. Case studies and extensions are planned as future work.
ISSN:1571-0661
1571-0661
DOI:10.1016/S1571-0661(04)80349-9