Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 191

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 191

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 199

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: scheme in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Notice: Undefined index: host in /home/users/00/10/6b/home/www/xypor/index.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1169

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/10/6b/home/www/xypor/index.php:191) in /home/users/00/10/6b/home/www/xypor/index.php on line 1176
A scalable static analysis framework for reliable program development exploiting incrementality and modularity | Archivo Digital UPM
[go: up one dir, main page]

A scalable static analysis framework for reliable program development exploiting incrementality and modularity

García Contreras, Isabel (2021). A scalable static analysis framework for reliable program development exploiting incrementality and modularity. Tesis (Doctoral), E.T.S. de Ingenieros Informáticos (UPM). https://doi.org/10.20868/UPM.thesis.68446.

Descripción

Título: A scalable static analysis framework for reliable program development exploiting incrementality and modularity
Autor/es:
  • García Contreras, Isabel
Director/es:
Tipo de Documento: Tesis (Doctoral)
Fecha de lectura: Junio 2021
Materias:
Escuela: E.T.S. de Ingenieros Informáticos (UPM)
Departamento: Inteligencia Artificial
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[thumbnail of ISABEL_GARCIA_CONTRERAS.pdf]
Vista Previa
PDF (Portable Document Format) - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (4MB) | Vista Previa

Resumen

Automatic static analysis tools allow inferring properties about software without executing it and without the need for human interaction. When these tools are based on formal methods, the properties are guaranteed to hold and come with a mathematical proof. The usage of these tools during the coding, testing, and maintenance phases of the software development cycle helps reduce efforts in terms of time and cost, as they contribute to the early detection of bugs, automatic optimizations, or automatic documentation. The increasing importance of the reliability of evolving software is evidenced by the current number of tools and on-line platforms for continuous integration and deployment. In this setting, when changes happen fast, analysis tools are only useful if they are precise and, at the same time, scalable enough to provide results before the next change happens. In this thesis we study scalable analyses in the context of abstract interpretation. Since a way to improve scalability is to perform coarser abstractions, we first inspect what effect this may have in effectively proving the absence of bugs. Second, we present a framework for scalable static analyses which is generic, that is, independent of the data abstraction of the program. We present several algorithms for incrementally reanalyzing whole programs in a context-sensitive manner, reusing as much as possible previous analysis results. A key novel aspect of the approach is to take advantage of the modular structure of programs, typically as defined by the programmer, while keeping a fine-grained relation between the analysis result and the source program. Additionally, we present a mechanism for the programmer to help the analyzer in terms of precision and performance by means of assertions. We show that these assertions together with incremental analysis are specially useful when analyzing generic code. All these algorithms have been implemented and evaluated for different abstract domains within the CiaoPP framework. Lastly, we present an application of the analysis framework to perform on-the-fly assertion checking, providing continuous and almost instantaneous feedback to the programmer as the code is written. Here the incrementality and modular nature of the presented algorithms, and the locality of the changes, are key to achieving fast response times. ----------RESUMEN---------- Las herramientas automáticas de análisis estático permiten inferir propiedades del software sin ejecutarlo y sin necesidad de intervención humana. Si dichas herramientas se basan en métodos formales, éstas proporcionan garantías matemáticas de que las propiedades se cumplen. El uso de estas herramientas durante las fases de codificación, prueba y mantenimiento del ciclo de desarrollo del software ayuda a reducir esfuerzo en términos de tiempo y coste, ya que contribuye a la detección temprana de errores, a la optimización automática y a la documentación automática. La creciente importancia de la fiabilidad de un software en constante evolución se ha puesto de manifiesto por el número de herramientas y plataformas disponibles on-line para la integración y despliegue continuos de software. En este contexto, en el que los cambios ocurren rápido, las herramientas de análisis son útiles sólo si son precisas y lo suficientemente escalables como para proporcionar resultados más rápidamente de lo que ocurren los cambios. En esta tesis estudiamos análisis escalables en el ámbito de la interpretación abstracta. Dado que una forma de mejorar la escalabilidad es generalizar las abstracciones, primero estudiamos qué efecto tienen estas generalizaciones en la eficacia del dominio para demostrar la ausencia de errores. Segundo, presentamos un marco para el análisis estático que es genérico, es decir, independiente de la abstracción de los datos del programa. Presentamos diferentes algorithmos para reanalizar incrementalmente programas enteros, de forma sensible al contexto, reutilizando lo máximo posible un resultado anterior. Un aspecto novedoso y clave de nuestro enfoque es aprovechar la estructura modular de los programas, típicamente definida por la persona programadora, pero manteniendo una relación precisa entre el programa original y el resultado del análisis. Adicionalmente, presentamos un mecanismo para que la programadora pueda ayudar al analizador en términos de precisión y rendimiento mediante aserciones. Mostramos que estas aserciones junto con un análisis incremental son especialmente útiles para analizar código genérico. Todos los algoritmos han sido implementados y evaluados para diferentes dominios abstractos dentro de la herramienta CiaoPP. Por último, presentamos una aplicación de este marco de análisis para realizar comprobación de aserciones en tiempo de compilación al vuelo, de forma que se proporciona una retroalimentación continua a la programadora mientras escribe el código. Aquí, la naturaleza incremental y modular de los algoritmos, además de la localización de los cambios, son clave para lograr tiempos de respuesta rápidos.

Proyectos asociados

Tipo
Código
Acrónimo
Responsable
Título
Gobierno de España
16/04811
Sin especificar
Sin especificar
FPU grant
Gobierno de España
TIN2015-67522-C3-1-R
TRACES
Sin especificar
Tecnologías y herramientas para el desarrollo de software consciente de los recursos, correcto y eficiente (IMDEA)
Gobierno de España
PID2019-108528RB-C21
ProCode
Sin especificar
"Rigorous Methods for the Development of Software Systems with Certified Quality and Reliability" (Métodos Rigurosos para el Desarrollo de Sistemas Software de Calidad y Fiabilidad Certificadas)
Comunidad de Madrid
M141047003
N-GREENS
Sin especificar
Sin especificar
Comunidad de Madrid
P2018/TCS-4339
BLOQUES-CM
Sin especificar
Sin especificar

Más información

ID de Registro: 68446
Identificador DC: https://oa.upm.es/68446/
Identificador OAI: oai:oa.upm.es:68446
Identificador DOI: 10.20868/UPM.thesis.68446
Depositado por: Archivo Digital UPM 2
Depositado el: 08 Sep 2021 09:32
Ultima Modificación: 30 Nov 2022 09:00