We present a general framework for the declarative debugging of functional logic programs, which is valid both for eager as well as lazy programs. We associate to our programs a semantics based on a (continuous) immediate consequence operator which models computed answers. Then we show that, given the intended specication of a program P , it is possible to check the correctness of P by a single step of the immediate consequence operator. We also present a more eective methodology which is based on abstract interpretation. By approximating the intended specication of the success set we derive a nitely terminating debugging method, which can be used statically. Our framework is parametric w.r.t. to the chosen approximation of the success set. We present one specic example of approximation which improves previous work. We also give discuss about how we plan to use inductive learning techniques in order to correct bugs. We provide an implementation of our debugging system which shows experimentally on a wide set of benchmarks that we are able to nd some common errors in the user programs.
M., A., F., C., Falaschi, M. (2002). A Debugging Scheme for Functional Logic Programs. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 64, 18-55.
A Debugging Scheme for Functional Logic Programs
FALASCHI, MORENO
2002-01-01
Abstract
We present a general framework for the declarative debugging of functional logic programs, which is valid both for eager as well as lazy programs. We associate to our programs a semantics based on a (continuous) immediate consequence operator which models computed answers. Then we show that, given the intended specication of a program P , it is possible to check the correctness of P by a single step of the immediate consequence operator. We also present a more eective methodology which is based on abstract interpretation. By approximating the intended specication of the success set we derive a nitely terminating debugging method, which can be used statically. Our framework is parametric w.r.t. to the chosen approximation of the success set. We present one specic example of approximation which improves previous work. We also give discuss about how we plan to use inductive learning techniques in order to correct bugs. We provide an implementation of our debugging system which shows experimentally on a wide set of benchmarks that we are able to nd some common errors in the user programs.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/11365/38228
Attenzione
Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo