Abstract
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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
ANSI/IEEE. IEEE Standard for Binary Floating-point Arithmetic, std 754-1985 edition (1985)
Bohlender, G., Walter, W., Kornerup, P., Matula, D.W.: Semantics for exact floating-point operations. In: Symp. on Computer Arithmetic, pp. 22–26 (1991)
Boldo, S., Daumas, M.: Properties of the subtraction valid for any floating point system. In: 7th International Workshop on Formal Methods for Industrial Critical Systems, pp. 137–149 (2002)
Boldo, S., Daumas, M.: Representable correcting terms for possibly underflowing floating point operations. In: Bajard, J.-C., Schulte, M. (eds.) 16th Symposium on Computer Arithmetic, pp. 79–86 (2003)
Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximations of fixed points. In: Principles of Programming Languages 4, pp. 238–252. ACM Press, New York (1977)
Cousot, P., Cousot, R.: Systematic design of program transformation frameworks by abstract interpretation. In: Conference Record of the Twentyninth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Portland, Oregon, pp. 178–190. ACM Press, New York (2002)
Dalla Preda, M., Giacobazzi, R.: Control code obfuscation by abstract interpretation. In: SEFM 2005. International Conference on Software Engineering and Formal Methods, pp. 301–310. IEEE Computer Society Press, Los Alamitos (2005)
Goubault, E., Martel, M., Putot, S.: Some future challenges in the validation of control systems. In: ERTS 2006 (2006)
Goubault, E., Putot, S.: Static analysis of numerical algorithms. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, Springer, Heidelberg (2006)
Jones, N., Gomard, C., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Int. Series in Computer Science. Prentice Hall International, Englewood Cliffs (1993)
Martel, M.: Validation of assembler programs for DSPs: a static analyzer. In: Program analysis for software tools and engineering, pp. 8–13. ACM Press, New York (2004)
Martel, M.: An overview of semantics for the validation of numerical programs. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 59–77. Springer, Heidelberg (2005)
Martel, M.: Semantics of roundoff error propagation in finite precision calculations. Journal of Higher Order and Symbolic Computation 19, 7–30 (2006)
Sterbenz, P.H.: Floating-point Computation. Prentice-Hall, Englewood Cliffs (1974)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Martel, M. (2007). Semantics-Based Transformation of Arithmetic Expressions. In: Nielson, H.R., Filé, G. (eds) Static Analysis. SAS 2007. Lecture Notes in Computer Science, vol 4634. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74061-2_19
Download citation
DOI: https://doi.org/10.1007/978-3-540-74061-2_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-74060-5
Online ISBN: 978-3-540-74061-2
eBook Packages: Computer ScienceComputer Science (R0)