Speeding Up Algorithmic Debugging Using Balanced Execution Trees

Algorithmic debugging is a debugging technique that uses a data structure representing all computations performed during the execution of a program. This data structure is the so-called Execution Tree and it strongly influences the performance of the technique. In this work we present a transformati...

Descripción completa

Detalles Bibliográficos
Autores: Silva, Josep|||0000-0001-5096-0008, Insa Cabrera, David, Riesco, Adrián
Tipo de recurso: capítulo de libro
Fecha de publicación:2013
País:España
Institución:Universitat Politècnica de València (UPV)
Repositorio:RiuNet. Repositorio Institucional de la Universitat Politécnica de Valéncia
Idioma:inglés
OAI Identifier:oai:riunet.upv.es:10251/72733
Acceso en línea:https://riunet.upv.es/handle/10251/72733
Access Level:acceso abierto
Palabra clave:LENGUAJES Y SISTEMAS INFORMATICOS
Descripción
Sumario:Algorithmic debugging is a debugging technique that uses a data structure representing all computations performed during the execution of a program. This data structure is the so-called Execution Tree and it strongly influences the performance of the technique. In this work we present a transformation that automatically improves the structure of the execution trees by collapsing and projecting some strategic nodes. This improvement in the structure implies a better behavior and performance of the standard algorithms that traverse it. We prove that the transformation is sound in the sense that all the bugs found after the transformation are real bugs; and if at least one bug is detectable before the transformation, then at least one bug will also be detectable after the transformation. We have implemented the technique and performed several experiments with real applications. The experimental results confirm the usefulness of the technique.