A debugging scheme for functional logic programs

dc.contributor.authorAlpuente, M.
dc.contributor.authorCorrea, F.
dc.contributor.authorFalaschi, M.
dc.contributor.departmentUniversidad EAFIT. Departamento de Cienciasspa
dc.contributor.researchgroupLógica y Computaciónspa
dc.creatorAlpuente, M.
dc.creatorCorrea, F.
dc.creatorFalaschi, M.
dc.date.accessioned2021-03-26T21:35:19Z
dc.date.available2021-03-26T21:35:19Z
dc.date.issued2002-01-01
dc.description.abstractWe 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.eng
dc.identifierhttps://eafit.fundanetsuite.com/Publicaciones/ProdCientif/PublicacionFrw.aspx?id=1852
dc.identifier.doi10.1016/S1571-0661(04)80345-1
dc.identifier.issn15710661
dc.identifier.otherSCOPUS;2-s2.0-11244330102
dc.identifier.urihttp://hdl.handle.net/10784/27404
dc.language.isoengeng
dc.publisherElsevier BV
dc.relation.urihttps://www.scopus.com/inward/record.uri?eid=2-s2.0-11244330102&doi=10.1016%2fS1571-0661%2804%2980345-1&partnerID=40&md5=1b22704031415fa4cb87dd1436495b35
dc.rightshttps://v2.sherpa.ac.uk/id/publication/issn/1571-0661
dc.sourceElectronic Notes In Theoretical Computer Science
dc.subject.keywordApproximation theoryeng
dc.subject.keywordComputational complexityeng
dc.subject.keywordComputer programming languageseng
dc.subject.keywordMathematical operatorseng
dc.subject.keywordProgram debuggingeng
dc.subject.keywordSemanticseng
dc.subject.keywordSoftware engineeringeng
dc.subject.keywordFunctional logic programmingeng
dc.subject.keywordLogic languageseng
dc.subject.keywordProgram correctnesseng
dc.subject.keywordProgram specificationeng
dc.subject.keywordLogic programmingeng
dc.titleA debugging scheme for functional logic programseng
dc.typeinfo:eu-repo/semantics/conferencePapereng
dc.typeconferencePapereng
dc.typeinfo:eu-repo/semantics/publishedVersioneng
dc.typepublishedVersioneng
dc.type.localDocumento de conferenciaspa

Archivos