Something significant happened during the 1950s in the history of science & technology. By 1950, logicians and linguists had been studying “artificial languages” and “natural languages” for centuries. But, the words “programming language” were not used at all. By 1959, however, those words had become common currency. And, in today's digital world, the absence of “programming languages” is totally unthinkable.
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.
[Here are the contents of some visuals from Dijkstra's presentation in Geneva, 1973. Source: my archives, Box 11]
Our programs serve to instruct our machines.
--> A “mismatch” is blamed on the program.
Our machines serve to execute our programs.
--> A “mismatch” is blamed on the machine.
[The following words, written by Dijkstra in January 1973, are from Box 9 in my archive.]
Things I would like to do (they are not all unrelated).
1) write a book on the art of programming.
2) find a good notation for doing justice to representational abstraction.
3) investigate axiomatic definition of semantics with the aim of
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.
During Dijkstra's career at Eindhoven programming had developed from an art to a science. But, by 1982 there was still insufficient official recognition for this development. From Dijkstra's perspective, computer programmers had yet to be taken seriously in the world at large. This observation helps explain why, a year prior, he had warmly welcomed the new journal called Science of Computer Programming. In his words:
John C. Reynolds wrote to me:
As Dijkstra was fond of pointing out, the community of people who call themselves “software engineers” is marred nowadays by an abundance of second rate work — so much so that others have come to disdain the term and call themselves “computer scientists”. But in the 60’s and 70’s, people such as Hoare, Wirth, and Dijkstra proudly and properly called themselves software engineers, and managed to be simultaneously rigorous and useful.
© 2011–today by the respective authors. All rights reserved.