Wirth and Dijkstra were close colleagues, thoroughly studying each other's writings in 1971. But how close, exactly, were they? How did Wirth's views differ from those of Dijkstra? In my first attempt to address these matters, I shall discuss a letter Wirth sent to Dijkstra in March 1971.
In the previous post, "The reliability problem in a nutshell", the pessimistic assumption was made that each program component could interact with any other component. This resulted in the exponential factor pN, with N equal to the number of components and p equal to the probability that a component is bug free.
Consider a large program consisting of N individual components that can freely interact with each other. Suppose each component has a probability p of being right. Then the probability P that the whole program is right satisfies the following inequality:
Looking back at the late 1960s, Dijkstra mentioned that progress had been made in processor allocation, mainly due to the work of his students Bomhoff and Feijen. With respect to virtual storage implementations, however, Dijkstra humbly admitted that much had still to be done on this subject. Even though he had spent months trying to do so, he was stil not able to find the right abstractions. [EWD300]
The late 1960s were successful but also difficult years for Dijkstra: 1968 was the year of the Software Crisis in Garmisch and 1969 was a year of depression. In Dijkstra's words during the winter of 1970/71: