Lambda the Ultimate

inactiveTopic Edsger Wybe Dijkstra (1930-2002)
started 8/7/2002; 12:43:48 PM - last post 8/9/2002; 11:06:19 PM
Ehud Lamm - Edsger Wybe Dijkstra (1930-2002)  blueArrow
8/7/2002; 12:43:48 PM (reads: 1405, responses: 4)
Edsger Wybe Dijkstra (1930-2002)
A smart man passed away. Edsger Dijkstra was one of the true pioneers of computer science, with ground breaking contributions ranging over the entire field.

Dijkstra is justly famous for work on algorithms (especially graph algorithms), concurrency and synchronization (including distributed algorithms), and operating systems. I want to concentrate on some of his contributions to the field of programming language research.

Dijkstra was not interested only in algorithms in the abstract, and gave a lot of attention to the construction of working software. He was one of the proponents of Structured Programming, and penned the highly influential Go To Statement Considered Harmful letter to the editor of the CACM (1968).

Dijkstra's interest in program correctness led him to study proof techniques and methodologies. Among his contributions is the theory of predicate transformer semantics and the weakest precondition calculus (cf. LtU discussion). Dijkstra's approach was essentially based on a form of axiomatic semantics.

Dijkstra expressed strong views on many issues related to programming and programming languages. Among them was his distrust of the notion of natural language programming, and his belief the programming languages influence our thinking habits.

Dijkstra's work touched on other problems related to programming languages, including formal techniques, program transformation, and program translation and error detection.

His clear voice and vision will be missed.


Posted to general by Ehud Lamm on 8/7/02; 1:57:01 PM

Albert Y. C. Lai - Re: Edsger Wybe Dijkstra  blueArrow
8/7/2002; 3:20:59 PM (reads: 1354, responses: 0)
The book Structured Programming has three authors: Dahl, Hoare, and Dijkstra. As it happens, Dahl also died a couple of weeks ago. Hoare is still active and lively; he is attending (and helping run) the Marktoberdorf summer school these two weeks.

Dijkstra had a barebone programming language, the Guarded Command Language, as a pseudocode language and a vehicle for conveying the weakest precondition calculus. The word "guarded" refers to the boolean conditions in if-statements and while-statements, but today I see another reading: he guarded the language against any opportunity for implementation. He deliberately left the language unimplemented, so that the language remained general and transcended any implemented language. Whenever someone asks if there is a univeral programming language for expressing algorithms, a theoretical language that underlies all practical languages, I reply: if you use functional programming, it is the lambda calculus; if you use imperative programming, it is the Guarded Command Language.

Ehud Lamm - Re: Edsger Wybe Dijkstra (1930-2002)  blueArrow
8/8/2002; 11:39:04 AM (reads: 1279, responses: 0)
More tributes:

jon fernquest - Re: Edsger Wybe Dijkstra (1930-2002)  blueArrow
8/9/2002; 11:06:17 PM (reads: 1215, responses: 0)
Dijkstra's criticized the use of GO-TO's but also had a hand in the "Creation of Continuations" [Citeseer, HTML]

"A more subtle realization was that return addresses could be treated on the same footing as procedure parameters. With a prescient choice of words, E. W. Dijkstra remarked: 'We use the name "parameters" for all the information that is presented to the subroutine when it is called in by the main program; function arguments, if any, are therefore parameters. The data grouped under the term "link" are also considered as parameters; the link comprises all the data necessary for the continuation of the main program when the subroutine has been completed.' [Dijkstra, Edsger W. Recursive programming. Numerische Mathematik, 2 (1960) 312-318] Indeed, in the GIER Algol Compiler designed by Naur and Jo/rn Jensen [31], return addresses and label parameters, both regarded as program points, were treated in essentially the same way."

I wonder whether he had anything prescient to say about pointers?

Dijkstra's EWD's or correspondence has about 1400 entries. What are the best ones to begin with?