Dijkstra during the 1960s. The following post refers to my journal article about the Dijkstra of the late 1950s and early 1960s. Subsequent posts on this page either discuss this article or address EWDs that Dijkstra wrote during the 1960s.
Dijkstra generalized his multiprogramming problem by seeking symmetries, as I've explained in a previous post. Below, I examine how Dijkstra also drew an analogy with hotel management to further simplify his multiprogramming concerns (EWD 54).
Dijkstra tackled the problem of allowing multiple users share the university's X8 computer and its peripheral hardware devices (EWD 51). To solve this problem, Dijkstra first reformulated it in terms of as many symmetries as he could find, thereby obtaining a more general problem description.
In the first half of 1963, Dijkstra described the execution of a program as a living “tree” that can grow “branches” and “twigs”. As the tree gets older — that is, as the execution of the program progresses — branches and twigs can fall off the tree, and others can grow in their place. Dijkstra used the metaphor of the living tree to unify three seemingly disparate topics: dynamic memory management, subroutine invocations, and multiprogramming.
In early 1962, Edsger W. Dijkstra presented an analogy of a classroom teacher calling upon one of her pupils. By doing so, he conveyed some subtleties of “dynamic memory management” and “concurrent process behavior”.
“I still remember it well, the day my future husband entered my life”, Ria Debets-Dijkstra recalls. “He was a good-looking man, 20 years of age. He entered our Computing Department with a cane!” . The Computing Department was part of the newly founded Mathematical Centre in Amsterdam. Ria Debets-Dijkstra had already been working there for two years before she saw Edsger Dijkstra on that eventful day in 1951. Dijkstra officially joined the Computing Department in March of the following year.
Toward the end of my paper `Dijkstra's Rallying Cry for Generalization ...' I briefly describe the work of Irons and Feurzeig. These two men had by 1960 also implemented ALGOL60's recursive procedure just like Dijkstra and Zonneveld. Their solution, however, was very different from the solution proposed by Dijkstra and Zonneveld.
Dijkstra's Rallying Cry for Generalization is pleased to offer to its readers Chapter III of the book Studies in Operating Systems by R. M. McKeag and R. Wilson, edited by D H. R. Huxtable and published in 1976 by Academic Press:
In his technical report (MR 34) of October 1961, Dijkstra explained why he viewed a good programming language to be one of a small number of very general concepts. To clarify, he used an analogy between mathematics and programming, an analogy which in later years would be scrutinized in several ways by his contemporaries. (See e.g. MacKenzie's 2004 book Mechanizing Proof: Computing, Risk, and Trust.)