Trip report E.W.Dijkstra IFIP Working Group W.G.2.3 "On Programing Methodology", 21st - 26th October 1973, Blanchland, England

From sad experience we all know that the hardships of travel are the certain price to be paid for possible pleasures; in this case both terms of the cost/benefit ratio were extremely high.

Basing himself on ample evidence collected in the past Mike Woodger was certain that the train by which the two of us travelled from London to Newcastle would arrive in Newcastle dead on time. It was an "Intercity Train" at least, I even got the vague impression that it was one of the trains with a fancy name as well (could it have been "The Abelonian"?). But all this could not prevent a derailment, as a result of which we arrived in Newcastle at 8.00 p.m. instead of the scheduled 6.27; in Newcastle they had waited for our arrival and somewhere after 9 p.m. we arrived in Blanchland at the Lord Crewe Arms Hotel, just in time for the postponed evening meal.

We left Blanchland in the early afternoon on Friday 26th. With Brian Randell and Gerhard Seegmüller (from Munich) we arrived at the University Computing Laboratory, where Gerhard gave a talk, most of which I could attend, but slightly before he had finished I had to leave in order to catch the six-o'clock flight from Newcastle to Amsterdam: at a quarter to nine I would be landing in Eindhoven. I dislike missing planes, so I arrived in time, only to be faced with the logical problem whether one could catch a cancelled flight. So I was flown to London, from where after two hours in the departure hall, a KLM flight would take me to Rotterdam. But this one was cancelled as well and at half past twelve --courtesy of KLM-- I found myself again alone in a hotel bed. On Saturday morning my take-off was scheduled at 9.35, but this flight was delayed for at least two hours and thanks to the fact that I had hand luggage only, I could switch to one of the last free places of another KLM flight, this time to Amsterdam. This fourth effort to cross the North Sea was successful and in the course of the afternoon my family picked me up at Eindhoven railway station. A three hour trip had taken me almost 21 hours.

The Lord Crewe Arms Hotel in Blanchland is eminently suited for a conference of this type. Blanchland is a very little, very old and rather isolated village --there is a bus connection to civilization once a week or something like that-- with a few hundred inhabitants and a good hotel in the ruins of the old monastery, with a multitude of "mind your step" and "watch your head" --I hurt mine thrice!-- passages. In the last night a blown fuse paralyzed my bedroom heating, with the result that I woke up shivering after what could only be called "a refreshing night". As I said, the hotel was eminently suited for a conference of this type, its monastic atmosphere was only ruined by Mike Woodger's portable radio with news about Nixon and the Middle East. (Exciting of course, but that was exactly the reason why I would have preferred to be without it!)

Our sessions were one and a half hour mostly: four of them on Monday, Wednesday and Thursday, two of them on Tuesday (excursion in the afternoon) and two of them on Friday morning. According to modern student standards, we made long days! And then I am not even counting the discussions in the evening. Personal circumstances made me write during two nights; as a result I was somewhat tired when I came home, but, as will become apparent in the sequel, it was worth it.

Our first session was devoted to the collection of material and the (loose) design of the time table. I offered two subjects, viz. "Self-stabilization and distributed control" and "Sequencing primitives revisited."

The remaining three sessions of the Monday were filled --he was the only speaker filling three slots-- by M.A.Jackson, an independent consultant from London who had undertaken, as an invited guest, to introduce the members of this group to commercial programming. He did a very good job. One of his major activities is to give two-day to five-day courses to COBOL programmers in which he taught them how to apply "structured programming techniques" in a COBOL environment. He did not expose us to such a course, he described his courses. He did an excellent job and his points were well taken. His central theme was that a file could be described grammatically as a regular expression --he made quite clear that while lecturing for the commercial programmers he avoided this term but explained it via pictures, of which he gave examples-- and that a program processing such a file should have a syntactical structure very much similar to that regular expression. In the end he showed the complications that arose when a program had to process two files of not the same structure. He called this "a clash of data structures" and showed how in a COBOL environment one could program around it; this last part was a convincing case in favour of coroutines. His contribution was a very good start; he --Jackson, I mean-- was quite nervous and only got more confidence after the first session.

The next morning we had another guest speaking, dr.R.M.Burstall of the Department of Machine Intelligence and Perception. He filled two slots describing "A system which automatically improves programs". But for the loaded term "improves" in the title he gave a very good talk, describing work done by him and J.Darlington. Their aim was to construct automatically efficient POP-2 programs out of LISP-like programs. One could be nasty and argue that the problem only existed thanks to the fact they started with LISP and was only significant as far as the economics of POP-2 were applicable, he did much more. In particular he showed --quite convincingly-- that equivalence theorems concerned with uninterpreted schemata were too weak a tool; secondly he convinced me (and many others for that matter) that optimization should be done "at the right level": it is easier to exploit the known theorem that the intersection of two sets is a symmetric operation when the primitive "intersection" is still explicitly mentioned than when the operation of constructing the intersection is described by an asymmetric program. The aims of the project he described were clear and modest, he gave --in spite of his tendency to speak very fast and somewhat flippantly-- a good description of it. Also our second day was very successful.

The first slot on the Wednesday morning was filled by Douglas T.Ross with a philosophical paper titled "PLEX: A Natural Philosophy. Its Theory, Language, Method and Model". He was more coherent than he had ever been in my presence although it was still absolutely impossible to take notes, as he never finished a sentence. As he said himself in the opening of his talk "Perhaps the only thing that will become clear is that I am past embarrassment". Well, to say the honest truth: we were embarrassed: later in the week there was a slot called "Feedback on Ross" and none of us was quite sure how to do that. Things improved greatly when his handout was distributed: 10 pages of which the first 8 were quite processible, only after the picture (!) on page 9 was I lost.

Then, after the coffee break, I had to fill a slot. I had decided to speak on "Sequencing primitives revisited". The start of this talk had taken place in Marktoberdorf, when I showed a different way of looking at Euclid's Algorithm during one of the dinners. I knew this was relevant when designing a proper interface catering for representational abstraction. During our --extra long!-- train trip I showed this to Mike Woodger, who after a long time, during which he did not see what I was driving at, suddenly became excited. It was on account of that excitement, that I offered the subject for the conference the next morning. Monday I had a second trial in private with Jackson and Burstall, during which I designed a tentative syntax to be able to show examples. Tuesday evening I could not sleep and found myself preparing my lecture: with the brains burning I left my bed at 2.30 a.m. and wrote for more than an hour. I filled my slot and at the end of it, I was half way. Some immediate rescheduling was done and the first slot of the afternoon was given to me as well; during that second slot I completed my presentation, covering six sub-subjects

  1. Uniform treatment of multi- and uniprogramming
  2. To show the equivalence of deadlock and termination
  3. How to avoid certain forms of sequential overspecification
  4. How to cope with certain forms of non-determinacy
  5. How to retain certain symmetries of the problem statement in the problem solving algorithm
  6. A proper interface element for representational abstraction.

I was quite excited --as a matter of fact I still am-- and convinced my audience, if not by reasoning, then at least by eloquence. The last slot was filled by Gerhard Seegmüller. He was torn to pieces and I am afraid that I was instrumental in doing so. As a director of a large computing centre he wanted to discuss with us a paper with design considerations for a systems programming language. The paper contained superficial descriptions of a few "how's" but none of the "why's". He complained about the fact that the people of this working group did not --although "Programming Methodology" was our subject-- provide him with the answers to his practical questions. It is exactly the strength of this working group that we do not pretend to have an answer if this, in fact, is not true. He is dangerously near the patient for whose illness medical science does not know a cure and who then blames the physicians for their inability to cure him. He then goes to a quack; as a matter of fact; he blamed us for not acting as quacks. All this was later cleared up and he saw that it had been mistaken to bring up this subject in this form with these expectations. He is a very nice man and it must be hard to keep your sanity in his position; I think he does remarkably well.

Thursday was bad. The first two slots were mr.D.J.Pearson from ICL, describing CADES, A Computer Aided Design and Evaluation System. For those who are interested in the way in which ICL has tried to control system design following the Chinese Army Approach, it may have been quite interesting. But it was depressing; of course "structured programming" and "levels" etc. are the terminology used to describe and defend the system, but it was all so terribly wrong. It struck me as first designing a vocabulary --in a loosely hierarchical manner--, then building --again in a hierarchical manner-- sentences from that vocabulary only to discover then that it does not fit: Great! Iterative Design Cycles! The reason for the misfit being, that while introducing the vocabulary they had not written the dictionary defining those terms. Sickening. Besides that, mr.Pearson's English was below any standards. During the second slot he could not keep my attention and I solved a problem mentioned by Burstall, using my new techniques, in an absolutely satisfactory manner.

After lunch, we were addressed by dr.P.Henderson from The Computing Laboratory of Newcastle University, describing how they intended to use a not yet implemented symbolic simulation system during program development. The idea of simulation at this symbolic level was not without attraction, but Henderson shocked his audience by his superficiality: in spite of the fact that he had given this talk now about twelve times during the last three weeks, his notion of "the states of a variable" was still a conceptual mess and his example contained a fundamental flaw. At first sight the Newcastle group may make a very active impression, but they produce noise with a productivity based on lack of standards rather than on insight. Disappointing and depressing.

The last slot on Thursday was filled by Harlan D.Mills from IBM who redid his old piece of the tree systems on the level sets of R. A cute observation disguised as an important theoretical insight, dressed up by all the formalistic pomp and circumstance that could be used to inflate a balloon. The audience gently pricked into the balloon but we are not sure whether he noticed it. He was pathetically keen on impressing us, both at the session and during private conversation --I checked this with a few other members of the group as well--. His performance was technically void but from other points of view quite illuminating. He has some connection with Johns Hopkins University; poor Johns Hopkins...

Last morning's first slot was taken care of by dr J.D.Roberts from Cambridge, a very shy speaker who presented his --massive!-- handout "Semantic Primitives for Secure Parallel Processing". The paper contains too much detail, the presentation, however, was quite nice. His paper, together with the one from Burstall, somewhat restored my confidence in English Computing Science (after the severe shock of the IUCC Symposium last September).

Our last session was "feedback on Ross". This, surprise, surprise, was not embarrassing at all! Ross managed to connect what he had been saying to my last solution of the Burstall problem --which was still on the blackboard--; it was then connected to the notion of critical sections and the conceptual framework of Anatol Holt. It ended quite exciting!

A final remark. EWD391/392 had been handed out and at the first scheduling session I had said that I would be perfectly willing to talk about self-stabilization, but that I would prefer if my audience had read those two documents prior to that. After three days I discovered that they had hardly been looked at. I see a new form of illiteracy emerging. These people can read (in principle at least), but thanks to Xerox, our input channels are getting blocked. We are faced with so much junk, that each time the threshold gets higher.

29th October 1973                           prof.dr.Edsger W.Dijkstra

transcribed by Tristram Brelstaff
revised Mon, 27 Sep 2004