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.
[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
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.
To clarify his step-wise program composition, Dijkstra used terms like “program layers” and “levels of abstraction” in his `Notes on Structured Programming' [1, Chapter 1]. These terms were not well defined as Dijkstra conceded later. As a result, Dijkstra's exposition — although extremely rich in content — was difficult to understand completely. See e.g. Denning's clarifying article on Structured Programming  or my interview with Liskov who mentions Parnas in this regard .
In his 1972 `Notes on Structured Programming' [1, Chapter 1], Dijkstra introduced a methodology called step-wise program composition. He explained how to compose a program in minute steps, deciding each time as little as possible so that the correctness of each step is obvious.
Although he was a theoretical physicist by education, Dijkstra had been exposed to his mother's mathematical thinking during most of his teens. This observation helps explain why he continued to seek general mathematical arguments in his 1972 `Notes on Structured Programming'.
Dahl, Dijkstra, and Hoare's book "Structured Programming" was published in June 1972. Dijkstra wrote the first chapter, `Notes on Structured Programming', in which he introduced several new ideas. One of Dijkstra's main points was that mathematical techniques for small demonstration programs do not necessarily work for programs a thousand times larger.
“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.
© 2011–today by the respective authors. All rights reserved.