Skip to main content

Program correctness and machine arithmetic

  • Conference paper
  • First Online:
Book cover Problems and Methodologies in Mathematical Software Production

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 142))

  • 141 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

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).

    Google Scholar 

  • R.J.R. Back, Exception handling with multi-exit statements; report IWI 125/79, Math. Centre, Amsterdam (1979).

    Google Scholar 

  • J. de Bakker, Mathematical theory of program correctness; Prentice-Hall (1980).

    Google Scholar 

  • 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.

    Google Scholar 

  • E.W. Dijkstra, A discipline of programming; Prentice-Hall (1976).

    Google Scholar 

  • D. Gries, Educating the programmer: notation, proofs and the development of programs; TR 80-414, Cornell University (1980).

    Google Scholar 

  • C.A.R. Hoare, An axiomatic basis for computer programming; Comm. ACM 12(1969), p.576–581.

    Google Scholar 

Machine arithmetic

  • W.S. Brown, A simple but realistic model of floating-point computation; CS Techn. report no.83, Bell Laboratories (1980).

    Google Scholar 

  • 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.

    Google Scholar 

  • T.J. Dekker, A floating-point technique for extending the available precision; Num. Math, 18(1971) p.224–242.

    Google Scholar 

  • T.J. Dekker, Correctness proofs and machine arithmetic in L.D. Fosdick (ed.), Performance evaluation of numerical software; North-Holland Publ. Co. (1979).

    Google Scholar 

  • B. Ford, Parametrization of the environment for transportable numerical software; ACM TOMS 4(1978) p.100–103.

    Google Scholar 

  • J.E. Holm, Floating-point arithmetic and program correctness proofs; Ph.D. thesis, Cornell University (1980).

    Google Scholar 

  • D.E. Knuth, The art of computer programming, vol.2; Addison-Wesley (1969).

    Google Scholar 

  • J.H. Wilkinson, Rounding errors in algebraic processes; Her Majesty's Stationery Office (1963).

    Google Scholar 

Desirable features of floating-point arithmetic

  • W.J. Cody, Analysis of proposals for the floating-point standard; Computer 14(1981) p.63–68.

    Google Scholar 

  • J.T. Coonen, An implementation guide to a proposed standard for floating arithmetic; Computer 13(1980) p.68–79.

    Google Scholar 

  • J.T. Coonen, Underflow and the denormalized numbers; Computer 14(1981) p.75–87.

    Google Scholar 

  • 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.

    Google Scholar 

  • D. Hough, Applications of the proposed IEEE 754 standard for floating-point arithmetic; Computer 14(1981), p.70–74.

    Google Scholar 

  • T.E. Hull, Desirable floating-point arithmetic and elementary functions for numerical computation; SIGNUM Newsletter 14(1979) p.96–99.

    Google Scholar 

  • C.H. Reinsch, Principles and preferences for computer arithmetic; SIGNUM Newsletter 14(1979) p.12–27.

    Google Scholar 

  • D. Stevenson a.o., A proposed standard for binary floating-point arithmetic; Computer 14(1981) p.51–62.

    Google Scholar 

Interval arithmetic

  • W. Kahan, A more complete interval arithmetic; Lecture notes for a summer course at University of Michigan (1968).

    Google Scholar 

  • S.E. Laveuve, Definition einer Kahan-Arithmetik in Nickel (1975) p.236–245.

    Google Scholar 

  • R.E. Moore, Interval analysis; Prentice-Hall (1966).

    Google Scholar 

  • R.E. Moore, Methods and applications of interval analysis; SIAM Philadelphia (1979).

    Google Scholar 

  • K. Nickel (ed), Interval Mathematics; Lecture notes in Computer Science 29, Springer-Verlag (1975).

    Google Scholar 

  • 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.

    Google Scholar 

  • F.N. Ris, Tools for the analysis of interval arithmetic in Nickel (1975) p.75–98.

    Google Scholar 

  • J.M. Yohe, Software for interval arithmetic: a reasonably portable package; ACM TOMS 5(1979) p.50–63.

    Google Scholar 

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.

    Google Scholar 

  • 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Paul C. Messina Almerico Murli

Rights and permissions

Reprints 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

Publish with us

Policies and ethics