Abstract
The purpose of this paper is to give some insight in the construction of correct programs, especially numerical software, and in proving their correctness. After a brief survey of general program correctness axioms, the paper deals with various sets of axioms for machine arithmetic and some of its desirable features including a proposed standard for binary floating-point arithmetic. Moreover, a brief discussion is devoted to interval arithmetic. Finally, as an example of proving correctness, some algorithms for finding a zero of a real function in a real interval are considered.
Preview
Unable to display preview. Download preview PDF.
7. References
Program correctness
S. Alagić & M.A. Arbib, The design of well-structed and correct programs; Springer-Verlag (1978).
R.J.R. Back, Exception handling with multi-exit statements; report IWI 125/79, Math. Centre, Amsterdam (1979).
J. de Bakker, Mathematical theory of program correctness; Prentice-Hall (1980).
E.W. Dijkstra, Notes on structured programming in O.J. Dahl, ... E.W. Dijkstra, C.A.R. Hoare, Structured programming; Acad. Press (1972) p.1–82.
E.W. Dijkstra, A discipline of programming; Prentice-Hall (1976).
D. Gries, Educating the programmer: notation, proofs and the development of programs; TR 80-414, Cornell University (1980).
C.A.R. Hoare, An axiomatic basis for computer programming; Comm. ACM 12(1969), p.576–581.
Machine arithmetic
W.S. Brown, A simple but realistic model of floating-point computation; CS Techn. report no.83, Bell Laboratories (1980).
W.S. Brown & S.I. Feldman, Environment parameters and basic functions for floating-point computation; ACM Transactions on Math, Software 6(1980) p.510–523.
T.J. Dekker, A floating-point technique for extending the available precision; Num. Math, 18(1971) p.224–242.
T.J. Dekker, Correctness proofs and machine arithmetic in L.D. Fosdick (ed.), Performance evaluation of numerical software; North-Holland Publ. Co. (1979).
B. Ford, Parametrization of the environment for transportable numerical software; ACM TOMS 4(1978) p.100–103.
J.E. Holm, Floating-point arithmetic and program correctness proofs; Ph.D. thesis, Cornell University (1980).
D.E. Knuth, The art of computer programming, vol.2; Addison-Wesley (1969).
J.H. Wilkinson, Rounding errors in algebraic processes; Her Majesty's Stationery Office (1963).
Desirable features of floating-point arithmetic
W.J. Cody, Analysis of proposals for the floating-point standard; Computer 14(1981) p.63–68.
J.T. Coonen, An implementation guide to a proposed standard for floating arithmetic; Computer 13(1980) p.68–79.
J.T. Coonen, Underflow and the denormalized numbers; Computer 14(1981) p.75–87.
T.J. Dekker, Machine requirements for reliable, portable software in W. Cowell (ed.), Portability of numerical software; Lecture notes in Computer Science 57, Springer-Verlag (1977) p.22–36.
D. Hough, Applications of the proposed IEEE 754 standard for floating-point arithmetic; Computer 14(1981), p.70–74.
T.E. Hull, Desirable floating-point arithmetic and elementary functions for numerical computation; SIGNUM Newsletter 14(1979) p.96–99.
C.H. Reinsch, Principles and preferences for computer arithmetic; SIGNUM Newsletter 14(1979) p.12–27.
D. Stevenson a.o., A proposed standard for binary floating-point arithmetic; Computer 14(1981) p.51–62.
Interval arithmetic
W. Kahan, A more complete interval arithmetic; Lecture notes for a summer course at University of Michigan (1968).
S.E. Laveuve, Definition einer Kahan-Arithmetik in Nickel (1975) p.236–245.
R.E. Moore, Interval analysis; Prentice-Hall (1966).
R.E. Moore, Methods and applications of interval analysis; SIAM Philadelphia (1979).
K. Nickel (ed), Interval Mathematics; Lecture notes in Computer Science 29, Springer-Verlag (1975).
N. Apostolatos, U. Kulisch, R. Krawczyk, B. Lortz, K. Nickel & H.-W. Wippermann, The algorithmic language TRIPLEX-Algol 60; Num. Math. 11(1968) p.175–180.
F.N. Ris, Tools for the analysis of interval arithmetic in Nickel (1975) p.75–98.
J.M. Yohe, Software for interval arithmetic: a reasonably portable package; ACM TOMS 5(1979) p.50–63.
Finding a real zero
R.P. Brent, An algorithm with guaranteed convergence for finding a zero of a function; Comp. J. 14(1971) p.422–425.
J.C.P. Bus & T.J. Dekker, Two efficient algorithms with guaranteed convergence for finding a zero of a function; ACM TOMS 1(1975) p.330–345.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1982 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dekker, T.J. (1982). Program correctness and machine arithmetic. In: Messina, P.C., Murli, A. (eds) Problems and Methodologies in Mathematical Software Production. Lecture Notes in Computer Science, vol 142. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-11603-6_3
Download citation
DOI: https://doi.org/10.1007/3-540-11603-6_3
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-11603-5
Online ISBN: 978-3-540-39419-8
eBook Packages: Springer Book Archive