A somewhat open letter to Wladislaw M.Turski

Dear Wlad,

thank you very much for the copy of your “Design of Large Programs”; I cannot tell when it arrived, for it came while I was on the road. I have now read it twice and shall certainly read it a third time. I would like others to read it as well and, therefore, regret that the weakness of my copy forces me to remain a leaf of the distribution tree.

I found three typing errors "tha" instead of "the" on the last line of page 6, "invesitgations" instead of "investigations" on line –8 of page 10, and —more serious— "Dodrecht" instead "Dordrecht" on online +14 of page 10. (A remarkably low score for a document that was produced under such high pressure!) And there were, of course, a few articles missing. (In connection with articles a question. You have undoubtedly observed the profound stylistic difference between "A discipline" and "The art". Did this subtlety survive translation into Polish? Do you have word endings to serve that purpose?)

At first I found your paper very disturbing. You know, for many years I was completely baffled whenever I was confronted with "models" (and their companions: "interpretations"), having grown up with the idea that what a mathematician talks about constitutes ipso facto his subject matter (consistent or not). The more I learned about model theory, the more it struck me as a relic from the times before the healthy separation of mathematics from philosophy. For the latter topic I have developed a well-tended blind spot, and since my decision not to try to make sense of model theory I feel much better. It has saved me much confusion. (Do the planets provide a model for Newtonian motion, or do Newtonian equations provide a model for planetary motion? I preferred to regard that question as pointless. A number of years ago my Department decided to develop a course that should help students to "design (mathematical) models of real-world situations". Political considerations were stronger than my protest. Can you imagine my distress went I read in your abstract that you propose "to consider the specification as a theory with two models, one in the application domain, another in the program domain"?

I started reading —writing "yes", "hm", "thank you", "???", in the margin whenever I felt like it— and got enthusiastic at the bottom of page 5 "Given such a linguistic system we can formulate a specification by listing [the] specific constants and axioms of our specification".

Next to your paragraph explaining how the flow of control has "disappeared" (on page 7) I wrote "nice". You are right. The profound role of the semicolon is not sequencing, which is an operational aspect of the usual implementation, but functional composition. (Hence my abhorrence of the "end-of-line convention" —which seems a FORTRAN relic— and, at the other end of the spectrum, the semicolon as obligatory terminator of every statement. But that's now neither here nor there.)

When you started with "Consider a formula α. Let P, Q, ..., R be predicate symbols and F, G, ..., H function symbols occuring in α, etc.", I wasn't quite sure. however, whether I wished to follow you. (I was sure, however, that our pasts are very different.) The next two pages I found difficult. By the time I reached the inclusions Z⊂E(P) and Cn(Z)⊊E(P) I felt on firmer ground again.

One page further I was again with you, where you wrote: "In the naive approach to application programming one is very likely to encounter phrases to the effect that a good program models its application domain.” I, too, have indeed encountered phrases that effect and —see above— they always struck me as a sure symptom of profound misunderstanding. But the early occurrence of the word "naive" in your sentence triggered my immediate sympathy. The pivotal sentence of your paper seems to be the one that follows shortly: "If program is a model of a specification as an axiomatic theory, then why not consider the application domain ("the real world") as another model of the same theory? With my different past I would express that idea quite differently, but that does not prevent me from endorsing the suggestion whole-heartedly. (As a corollary it explains what we all know, viz. that database management will remain in its infancy as long as everything is "explained" in terms of employees, salaries, locations, etc.)

On line –2 of page 13 you have forgotten to underline: read “non” instead of “non”.

The pictures in the second half of your paper rather put me off, but that's what pictures always do to me, so don't worry. I shall try again.

*              *
*

The way in which you tie in specifications models theory leaves, for the time being, my feelings very mixed. On the one hand I feel that neither the relevance of Robinson's theorem of 1956, nor your taxonomy (i) through (vi) of how two (similar) specifications may differ could have been discovered without dragging model theory into the picture; on the other hand my nurtured dislike of the topic makes me believe (or makes me want to believe) that the morals of your findings can (and, hence should) be phrased much more succinctly without mentioning models at all. In the latter mood I blame the your training in logic for the form of this otherwise refreshing and inspiring paper. Your training in logic, which made you love the implication, is certainly responsible for the hilariously pleonastic sentence on page 9: "It can be easily seen that every inconsistent set of axioms is complete, and every incomplete set of axioms is consistent.")

May I thank you for your paper? Since I read it the future of our field looks brighter. With my greetings and best wishes,

yours ever,

Edsger

P.S. Information Processing Letters did a nice job in printing EWD687a! Thank you.

Plataanstraat 517th September 1980
5671 AL NUENENprof.dr.Edsger W.Dijkstra
The NetherlandsBurroughs Research Fellow

Transcribed by Martin P.M. van der Burgt
Last revision 2015-04-12 .