Semantics-Based Transformation of Arithmetic Expressions

Floating-point arithmetic is an important source of errors in programs because of the loss of precision arising during a computation. Unfortunately, this arithmetic is not intuitive (e.g. many elementary operations are not associative, inversible, etc.) making the debugging phase very difficult and empiric. This article introduces a new kind of program transformation in order to automatically improve the accuracy of floating-point computations. We use P. Cousot and R. Cousot's framework for semantics program transformation and we propose an offline transformation. This technique was implemented, and the first experimental results are presented.

[1]  Sylvie Boldo,et al.  Properties of the subtraction valid for any floating point system , 2002, Electron. Notes Theor. Comput. Sci..

[2]  Roberto Giacobazzi,et al.  Control code obfuscation by abstract interpretation , 2005, Third IEEE International Conference on Software Engineering and Formal Methods (SEFM'05).

[3]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[4]  Matthieu Martel,et al.  Semantics of roundoff error propagation in finite precision calculations , 2006, High. Order Symb. Comput..

[5]  Matthieu Martel An Overview of Semantics for the Validation of Numerical Programs , 2005, VMCAI.

[6]  Peter Kornerup,et al.  Semantics for exact floating point operations , 1991, [1991] Proceedings 10th IEEE Symposium on Computer Arithmetic.

[7]  Patrick Cousot,et al.  Systematic design of program transformation frameworks by abstract interpretation , 2002, POPL '02.

[8]  Matthieu Martel,et al.  Some future challenges in the validation of control systems , 2006 .

[9]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[10]  Guido D. Salvucci,et al.  Ieee standard for binary floating-point arithmetic , 1985 .

[11]  Matthieu Martel Validation of assembler programs for DSPs: a static analyzer , 2004, PASTE '04.

[12]  Sylvie Boldo,et al.  Representable correcting terms for possibly underflowing floating point operations , 2003, Proceedings 2003 16th IEEE Symposium on Computer Arithmetic.

[13]  Eric Goubault,et al.  Static Analysis of Numerical Algorithms , 2006, SAS.

[14]  Pat H. Sterbenz,et al.  Floating-point computation , 1973 .