Publication:
Deadlock-Guided Testing in CLP

Loading...
Thumbnail Image
Official URL
Full text at PDC
Publication Date
2017
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citations
Google Scholar
Research Projects
Organizational Units
Journal Issue
Abstract
Static deadlock analyzers might be able to verify the absence of deadlock. However, they are usually not able to detect its presence. Also, when they detect a potential deadlock cycle, they provide little (or even no) information on their output. Due to the complex flow of concurrent programs, the user might not be able to find the source of the anomalous behaviour from the abstract information computed by static analysis. This work proposes the combined use of static analysis and testing for effective deadlock detection in asynchronous programs. The asynchronous program is first translated into a CLP-version so that the whole combined approach is carried out by relying on the inherent backtracking mechanism and constraint handling of CLP. When the program features a deadlock, our combined use of analysis and testing provides an effective technique to catch deadlock traces. While if the program does not have deadlock, but the analyzer inaccurately spotted it, we might be able to prove deadlock freedom. The main results in this project have been submitted to: - the special issue on Computational Logic for Verification of the journal Theory and Practice of Logic Programming and - the 27th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR'17), and are currently under revision.
Los análisis estáticos de deadlock son, a menudo, capaces de asegurar la ausencia de bloqueos, pero cuando detectan un posible ciclo de deadlock, la información que devuelven como salida es escasa e insuficiente. Debido al complejo flujo de ejecución existente en los programas concurrentes, el usuario podría ser incapaz de encontrar la causa del comportamiento anóomalo a partir de la información abstracta proporcionada por el análisis estático. Este trabajo propone el uso combinado de análisis estático y el testing para la detección efectiva de deadlocks en programas asíncronos. Estos programas imperativos son primero traducidos a una versión declarativa (CLP), de manera que la aproximación combinada es llevada a cabo completamente por el mecanismo de backtracking inherente y al manejo de restricciones de CLP. Cuando el programa encuentra un deadlock, el uso combinado del testing y el análisis estático nos proporciona una técnica efectiva para encontrar trazas de deadlock. En caso de que el programa no contenga ninguno, pero el analizador sí que los encuentre por pérdidas de precisión, nosotros podríamos ser capaces de demostrar la ausencia de deadlock. Los principales resultados de este trabajo han sido presentados a: - la edición especial Computacional Logic for Verifcation de la revista Theory and Practice of Logic Programming y - la conferencia internacional de Logic-Based Program Synthesis and Transformation (LOPSTR'17) y se encuentran actualmente bajo revisión. Todas las técnicas desarrolladas en este trabajo han sido implementadas en la herramienta SYCO, la cual ha sido aceptada y presentada en la conferencia internacional de Compilers Construction (CC'16) [10].
Description
Máster en Ingeniería Informática, Facultad de Informática, Departamento de Sistemas Informáticos y Computación, curso 2016-2017.
Keywords
Citation