A debugging scheme for functional logic programs
Por:
Alpuente, M., Correa, F., Falaschi, M.
Publicada:
1 ene 2002
Resumen:
We present a generic scheme for the declarative debugging of functional logic programs which is valid for eager as well as lazy programs. In particular we show that the framework extends naturally some previous work and applies to the most modern lazy strategies, such as needed narrowing. First we associate to our programs a semantics based on a (continuous) immediate consequence operator, TR, which models computed answers. We show that, given the intended specification of a program R, it is possible to check the correctness of R by a single step of TR. We consider then a more effective methodology which is based on abstract interpretation: by approximating the intended specification of the success set we derive a finitely terminating diagnosis method, which can be used statically and is parametric w.r.t. to the chosen approximation. In order to correct the bugs, we sketch a preliminary deductive approach which uses example-guided unfolding. We specialize the incorrect rules w.r.t. sets of positive and negative examples which are gathered (bottom-up) during the diagnosis process, so that all refutations of negative examples and no refutation of positive examples are excluded. Our debugging framework does not require the user to either provide error symptoms in advance or answer difficult questions concerning program correctness. We extend an implementation of our system to the case of needed narrowing and illustrate it through some examples which demonstrate the practicality of our approach. © 2002 Published by Elsevier Science B.V.
Filiaciones:
Alpuente, M.:
Departamento de Sistemas Informáticos Y Computación-DSIC, Technical University of Valencia, Camino de Vera s/n, 46022 Valencia, Spain
Correa, F.:
Departamento de Informática Y Sistemas-DIS, University EAFIT, Carrera 49 7 Sur 50, 3300 Medellín, Colombia
Falaschi, M.:
Dipartimento di Matematica e Informatica, University of Udine, Via delle Scienze 206, 33100 Udine, Italy
Bronze
|