Resumen:
|
Declarative debugging is a debugging technique that abstracts the execution details to focus on the semantic meaning of the program components. It was frst proposed in the feld of Logic Programming, but its general structure has been later extended to other programming paradigms, becoming an active area of research. The technique relies on a data structure, the computation tree, that represents some computation producing an unexpected result. This tree is traversed by asking questions to the user about the correction of the intermediate computation steps until the source of the bug has been found. We show how instances of this general technique can be defned for diferent programming paradigms simply adapting the defnition of computation tree. In particular we present the instances that have been developed by the Declarative Programming Group at the University Complutense of Madrid, which include functional-logic languages (Toy and Curry), object oriented languages (Java), deductive databases (Datalog) and SQL views. Bachelor's degree in Computer Science by the Universidad Politécnica de Madrid and Ph.D in Mathematics by the Universidad Complutense de Madrid. Currently Lecturer (Prof. Contratado Doctor) in the Computer Science Department at the Faculty of Computer Science. Research areas of interest: functional-logic programming, declarative and algorithmic debugging, qualifed declarative programming and in general declarative languages including uncertainty, SQL debugging and test-case generation, embedding of XML query languages in declarative languages, program transformation techniques for declarative languages.
|