Letter from Wirth to Dijkstra


19 March 1971

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.


Massaging the program


8 February 1981

Given a specific function, called lambo, how do you prove that it is equal to its own inverse? Dijkstra's answer: by massaging a program that computes lambo. That is, by gradually transforming an original program that computes lambo into a symmetric program that is rather useless to the programmer but useful to the mathematician!


Morbid preoccupation with "specification languages"


17-31 January 1981

Dijkstra went on a trip to California, visiting universities and research centers. While doing so, he got annoyed by the many researchers who viewed the difficulties underlying multi-person software projects as "communication problems" and who, therefore, advocated new specification languages.


Presentations versus Lectures


7-12 January 1981

On the basis of an IFIP WG 2.3 meeting in Han-sur-Lesse (Belgium), Dijkstra expressed his misgivings about the overhead projector. He preferred the blackboard much more and the interaction it required between him and the audience. That is, he preferred to give "lectures", not "presentations". Instead of preparing everything in advance, he wanted room to improvise during his lectures.


Five elements of mental discipline.

One of Dijkstra's main questions was:

"Can the programmer arrange his activity in such a way that his growing product remains firmly in his intellectual grip, that he continues to understand what he is doing?" [EWD303]

To write structured programs, Dijkstra proposed five well-known techniques:

  • sequencing
  • operational abstraction
  • representational abstraction
  • configurational abstraction (cf. layered software)
  • textual encapsulation (cf. modularity)

The latter two are discussed here.


Computer efficiency

Here is what a reviewer had to say about the research paper `Dijkstra’s Rallying Cry ...':

The paper is, in essence, about an argument of generality versus computer efficiency. The argument was eventually settled in favour of the former due to the enormous advances in electronic technology. Today, computer efficiency is not an issue any more.

Is this correct? The last sentence seems to contradict Martin Reiser’s “law” which states that