Correct Handling of Floating-Point Computations in Symbolic Execution - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Rapport (Rapport De Recherche) Année : 2004

Correct Handling of Floating-Point Computations in Symbolic Execution

Résumé

Symbolic execution is a program testing technique which evaluates statements with symbolic input data along a selected path of the control flow graph. The process involves the computation of path conditions that tend to be simplified or solved in order either to get test data that sensitize the selected path or to demonstrate infeasibility of the path. In the presence of floating-point computations, the current strategy consists in using a constraint solver based on rationals or reals. Unfortunately, even when the computations conform ANSI/IEEE-754 floating-point arithmetic, this leads not only to approximative results but also to incorrect ones. For example, a path can be labeled as infeasible by using a constraint solver on the rationals although there exist floating-point input data that sensitize it. This paper shows how to evaluate symbolically the expressions when floating-point variables are involved in the computations. The focus is on the design and the implementation of projection functions required to solve path conditions over the floats. The proposed approach handles not only the numeric values of floating-point variables but also the symbolic values, such as infinities and NaNs. A symbolic execution environment of C floating-point computations is currently under development. Some very first experimental results are reported.

Domaines

Autre [cs.OH]
Fichier principal
Vignette du fichier
RR-5150.pdf (385.77 Ko) Télécharger le fichier

Dates et versions

inria-00071433 , version 1 (23-05-2006)

Identifiants

  • HAL Id : inria-00071433 , version 1

Citer

Bernard Botella, Arnaud Gotlieb, Claude Michel. Correct Handling of Floating-Point Computations in Symbolic Execution. [Research Report] RR-5150, INRIA. 2004. ⟨inria-00071433⟩
102 Consultations
88 Téléchargements

Partager

Gmail Facebook X LinkedIn More