Análisis de dataflow para mejorar la verificación de programas basada en SAT
La verificación acotada de programas basada en SAT-solving consiste en la traducción del programa a analizar, junto con las anotaciones provistas por el usuario, a una fórmula proposicional. Posteriormente, la fórmula obtenida es analizada en busca de violaciones a la especificación usando un SAT-so...
Autor principal: | |
---|---|
Otros Autores: | |
Formato: | Tesis de grado publishedVersion |
Lenguaje: | Español |
Publicado: |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
2011
|
Materias: | |
Acceso en línea: | https://hdl.handle.net/20.500.12110/seminario_nCOM000514_CuervoParrino |
Aporte de: |
id |
seminario:seminario_nCOM000514_CuervoParrino |
---|---|
record_format |
dspace |
spelling |
seminario:seminario_nCOM000514_CuervoParrino2025-05-09T18:45:44Z Análisis de dataflow para mejorar la verificación de programas basada en SAT Cuervo Parrino, Bruno Esteban Galeotti, Juan Pablo Garbervetsky, Diego David BOUNDED PROGRAM VERIFICATION DATAFLOW ANALYSIS SAT SOLVING La verificación acotada de programas basada en SAT-solving consiste en la traducción del programa a analizar, junto con las anotaciones provistas por el usuario, a una fórmula proposicional. Posteriormente, la fórmula obtenida es analizada en busca de violaciones a la especificación usando un SAT-solver. Esta técnica es capaz de probar la ausencia de errores hasta un scope dado. SAT es un problema NP-completo, lo que implica que no se conoce un algoritmo que lo resuelva eficientemente, siendo su complejidad exponencial en la cantidad de variables proposicionales. Es por esto que es esperable que una representación lógica de programa que apunte a reducir el número de variables tenga un gran impacto en la performance y escalabilidad del análisis. TACO es una herramienta que implementa la traducción de programas Java con anotaciones JML a Alloy, un lenguaje formal relacional que permite analizar automáticamente especificaciones buscando contra ejemplos de aserciones con la ayuda de un SAT-solver. TACO introduce una técnica para computar los posibles valores asignados a las variables del programa, que llamamos cotas, en el estado inicial del programa. En esta tesis mostramos cómo las técnicas de dataflow, típicamente utilizadas por los compiladores para optimizar programas, pueden también ser usadas como un medio para obtener traducciones optimizadas. En particular, definimos e implementamos un análisis de dataflow que, utilizando las cotas iniciales provistas por TACO, computa el conjunto de valores que pueden ser asignados a variables locales y de instancia en cada punto del programa. Esta información es utilizada para eliminar variables innecesarias en la fórmula proposicional resultante de la traducci ón del programa. Nuestros experimentos muestran mejoras significativas en los tiempos de análisis, permitiendo tanto la verificación de casos de estudio que no podían ser analizados anteriormente como, en algunos casos, la extensión del scope del análisis. Fil: Cuervo Parrino, Bruno Esteban. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales 2011-05-20 info:eu-repo/semantics/bachelorThesis info:ar-repo/semantics/tesis de grado info:eu-repo/semantics/publishedVersion application/pdf spa info:eu-repo/semantics/openAccess https://creativecommons.org/licenses/by-nc-sa/2.5/ar https://hdl.handle.net/20.500.12110/seminario_nCOM000514_CuervoParrino |
institution |
Universidad de Buenos Aires |
institution_str |
I-28 |
repository_str |
R-134 |
collection |
Biblioteca Digital - Facultad de Ciencias Exactas y Naturales (UBA) |
language |
Español |
orig_language_str_mv |
spa |
topic |
BOUNDED PROGRAM VERIFICATION DATAFLOW ANALYSIS SAT SOLVING |
spellingShingle |
BOUNDED PROGRAM VERIFICATION DATAFLOW ANALYSIS SAT SOLVING Cuervo Parrino, Bruno Esteban Análisis de dataflow para mejorar la verificación de programas basada en SAT |
topic_facet |
BOUNDED PROGRAM VERIFICATION DATAFLOW ANALYSIS SAT SOLVING |
description |
La verificación acotada de programas basada en SAT-solving consiste en la traducción del programa a analizar, junto con las anotaciones provistas por el usuario, a una fórmula proposicional. Posteriormente, la fórmula obtenida es analizada en busca de violaciones a la especificación usando un SAT-solver. Esta técnica es capaz de probar la ausencia de errores hasta un scope dado. SAT es un problema NP-completo, lo que implica que no se conoce un algoritmo que lo resuelva eficientemente, siendo su complejidad exponencial en la cantidad de variables proposicionales. Es por esto que es esperable que una representación lógica de programa que apunte a reducir el número de variables tenga un gran impacto en la performance y escalabilidad del análisis. TACO es una herramienta que implementa la traducción de programas Java con anotaciones JML a Alloy, un lenguaje formal relacional que permite analizar automáticamente especificaciones buscando contra ejemplos de aserciones con la ayuda de un SAT-solver. TACO introduce una técnica para computar los posibles valores asignados a las variables del programa, que llamamos cotas, en el estado inicial del programa. En esta tesis mostramos cómo las técnicas de dataflow, típicamente utilizadas por los compiladores para optimizar programas, pueden también ser usadas como un medio para obtener traducciones optimizadas. En particular, definimos e implementamos un análisis de dataflow que, utilizando las cotas iniciales provistas por TACO, computa el conjunto de valores que pueden ser asignados a variables locales y de instancia en cada punto del programa. Esta información es utilizada para eliminar variables innecesarias en la fórmula proposicional resultante de la traducci ón del programa. Nuestros experimentos muestran mejoras significativas en los tiempos de análisis, permitiendo tanto la verificación de casos de estudio que no podían ser analizados anteriormente como, en algunos casos, la extensión del scope del análisis. |
author2 |
Galeotti, Juan Pablo |
author_facet |
Galeotti, Juan Pablo Cuervo Parrino, Bruno Esteban |
format |
Tesis de grado Tesis de grado publishedVersion |
author |
Cuervo Parrino, Bruno Esteban |
author_sort |
Cuervo Parrino, Bruno Esteban |
title |
Análisis de dataflow para mejorar la verificación de programas basada en SAT |
title_short |
Análisis de dataflow para mejorar la verificación de programas basada en SAT |
title_full |
Análisis de dataflow para mejorar la verificación de programas basada en SAT |
title_fullStr |
Análisis de dataflow para mejorar la verificación de programas basada en SAT |
title_full_unstemmed |
Análisis de dataflow para mejorar la verificación de programas basada en SAT |
title_sort |
análisis de dataflow para mejorar la verificación de programas basada en sat |
publisher |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
publishDate |
2011 |
url |
https://hdl.handle.net/20.500.12110/seminario_nCOM000514_CuervoParrino |
work_keys_str_mv |
AT cuervoparrinobrunoesteban analisisdedataflowparamejorarlaverificaciondeprogramasbasadaensat |
_version_ |
1831983616936116224 |