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.
Dijkstra contributed greatly to introducing hierarchical systems into computing. Already in his very first report of 1953 as employee of the Mathematical Centre in Amsterdam, Dijkstra introduced what he would later call separate levels of concern . In 1959–60, he acquired fame after reformulating the problem of ALGOL translation as an hierarchical problem. His intermediate machine-independent stack-based language was, in hindsight, a precursor to the now widely used virtual machine; see chapter 3 in my book The Dawn of Software Engineering .
On Tuesday 12 January 1982, Dijkstra wrote a letter to Dr. A. Caplin explaining why he had his reservations about the language APL (A Programming Language). Dijkstra did this in response to an earlier letter that he had received from Caplin, a letter in which Caplin asked whether Dijkstra favored APL and, if not, why not. In Caplin's words:
Some former colleagues of Dijkstra have stressed in interviews with me that Dijkstra was not an engineer (in accordance with their definition of the term). By discussing Dijkstra's characteristic top-down design perspective in my previous post, I have already given one reason why Dijkstra was perceived as a non-engineer. Below I present another reason. While doing so we will again encounter the dichotomy between performance and generality, a dichotomy which Dijkstra seems to have stressed throughout his whole career.
The implementation is inadequate, not the abstraction!
In 1963 Dijkstra explained why he wanted to avoid using case distinctions in the design of a programming language. 18 years later, Dijkstra explained why case distinctions are preferably also avoided when reasoning mathematically.
© 2011–today by the respective authors. All rights reserved.