Skip to main content

Part of the book series: Texts and Monographs in Computer Science ((MCS))

  • 480 Accesses

Abstract

In this report I shall pursue a very simple idea. Provided that we give an adequate formulation of what we admit as “a single machine malfunctioning”, we can interpret the effort as that of making a program in such a way that under the assumption of at most a single malfunctioning, the machine will never produce a wrong result as if it were the right one. I shall not, however, start my considerations with a very precise definition of the class of malfunctionings I am going to allow a single instance of: the probability that I have designed a tool of which, after much hard labour, we must conclude that it is insufficient for reaching our goal, is then just too high. I shall therefore start at the other end, and investigate the consequences of applying a technique that —with a certain amount of goodwill— can be viewed as “making a program more robust” and afterwards analyse which class of malfunctionings it catches under the assumption of at most a single instance. The more elaborate exercises, I am sorry to announce, will be rather painful ones, because we cannot do them with too simple examples: if the example is very simple —like forming the sum of a hundred stored values— the only way to make the program more robust boils down (in some way or another) to doing the computation twice and I am —obviously!— more interested in what we can achieve without paying that price. (All by itself, this observation is already somewhat alarming: under assumption of a perfect machine, we are used to breaking down the whole computation as a succession of little steps, each of them trivial in itself, but if they can only be made more robust by duplication, our robustness concerns force us to consider larger “units”. This seems a warning that we are tackling a nasty subject!)

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 109.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 139.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 1982 Springer-Verlag New York Inc.

About this chapter

Cite this chapter

Dijkstra, E.W. (1982). Exercises in Making Programs Robust. In: Selected Writings on Computing: A personal Perspective. Texts and Monographs in Computer Science. Springer, New York, NY. https://doi.org/10.1007/978-1-4612-5695-3_20

Download citation

  • DOI: https://doi.org/10.1007/978-1-4612-5695-3_20

  • Publisher Name: Springer, New York, NY

  • Print ISBN: 978-1-4612-5697-7

  • Online ISBN: 978-1-4612-5695-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics