Machine requirements for reliable, portable software

  • T. J. Dekker
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 57)


Arithmetical and relational operations in a machine must be designed in such a way that it enables us to make reliable, portable, efficient software. Therefore, operations must deliver either the correct result or an indication (trap, flag bit) that the operation has not been correctly performed. Incorrect results should be best possible, in order to increase software robustness.

Some consequences are: relational operations must always be correct; the result of integral arithmetical operations must be exact and that of real operations should be correctly rounded when the exact result is within certain (machine dependent) bounds; operations on single-precision operands yielding an exact (or correctly rounded) double-precision result should also be available.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Brent, R. P., On the Precision Attainable With Various Floating-Point Number Systems, IEEE Trans. on Computers, pp. 601–607, (1973).Google Scholar
  2. 2.
    Brown, W. S., and Hall, A. D., FORTRAN Portability Via Models and Tools, To be published (1977).Google Scholar
  3. 3.
    Brown, W. S., and Richman, P. L., The Choice of Base, Comm. ACM 12, pp. 560–561 (1969).Google Scholar
  4. 4.
    Bus, J. C. P., and Dekker, T. J., Two Efficient Algorithms With Guaranteed Convergence for Finding a Zero of a Function, ACM Transactions on Mathematical Software 1, pp. 330–345 (1975).Google Scholar
  5. 5.
    Cody, W. J., Desirable Hardware Characteristics for Scientific Computation, SIGNUM Newsletter 6, pp. 16–31 (1971).Google Scholar
  6. 6.
    Cody, W. J., Desirable Arithmetic Design of Proposed MATHNET Computer, Letter to Gabriel, Argonne National Laboratory (1974).Google Scholar
  7. 7.
    Dekker, T. J., A Floating-Point Technique for Extending the Available Precision, Num. Math. 18, pp. 224–242 (1971).Google Scholar
  8. 8.
    Einarsson, B., IFIP Working Group on Numerical Software, SIGNUM Newsletter 9, pp. 3–4 (1974).Google Scholar
  9. 9.
    Grau, A. A., On a Floating-Point Number Representation for Use With Algorithmic Languages, Comm. ACM 5, pp. 160–161 (1962).Google Scholar
  10. 10.
    Kahan, W., Implementation of Algorithms, Part I, Technical Report 20, University of California, Berkeley (1973).Google Scholar
  11. 11.
    Knuth, D. E., The Art of Computer Programming, Vol. 2/Seminumerical Algorithms, Addison-Wesley (1969).Google Scholar
  12. 12.
    Meertens, L. G. L. T., A Note on Integral Division, ALGOL Bulletin, No. 39, pp. 30–32 (1976).Google Scholar
  13. 13.
    Reinsch, C. H., Building a Library of Numerical Algorithms: A Case Study From the Handbook "Linear Algebra," Paper presented at the first meeting of WG 2.5 at Oxford (1975).Google Scholar
  14. 14.
    Tanenbaum, A. S., Structured Computer Organisation, Prentice-Hall (1976).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1977

Authors and Affiliations

  • T. J. Dekker

There are no affiliations available

Personalised recommendations