Abstract domain for floating-point programs
Floating point numbers are widely used nowadays in programs but the verification of programs using this type of arithmetic is not trivial at all. This is due to the nature of floating-point arithmetic and the loss of precision when trying to represent real numbers in a computer. On the other hand, a...
| Autor: | |
|---|---|
| Formato: | tesis de maestría |
| Fecha de publicación: | 2021 |
| País: | España |
| Recursos: | Universidad Complutense de Madrid (UCM) |
| Repositorio: | Docta Complutense |
| Idioma: | inglés |
| OAI Identifier: | oai:docta.ucm.es:20.500.14352/9223 |
| Acesso em linha: | https://hdl.handle.net/20.500.14352/9223 |
| Access Level: | acceso abierto |
| Palavra-chave: | 004(043.3) Floating Point Arithmetic Abstract Interpretation Constraint Logic Programming Numerical Analysis. Aritmética en Coma Flotante Interpretación Abstracta Programación Lógica Análisis numérico. Informática (Informática) 1203.17 Informática |
| Resumo: | Floating point numbers are widely used nowadays in programs but the verification of programs using this type of arithmetic is not trivial at all. This is due to the nature of floating-point arithmetic and the loss of precision when trying to represent real numbers in a computer. On the other hand, abstract interpretation has demonstrated to be effective in capturing different code behaviors and a number of different approaches have been proposed for analyzing floating point, numerical programs. Among these approaches, we decided to implement within the Ciao abstract interpretation framework and study a non-relational interval analysis capturing the behavior of constraints of type x = y · z. We extended this analysis to different representations of real numbers with the hope of providing a tool for the developer in order to choose the most suitable type when coding. The objective is to be able to minimize the consumption of memory while controlling the loss of precision, which unfortunately is unavoidable in this computations. With this domain we have been able to run some experiments with industrial code obtaining some encouraging results. We also propose a number of research lines stemming from several possible extensions this work. |
|---|