Submitted by egdaylight on
Dated:
[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
3a) giving a sound mathematical basis for “intuitive theorems”.
3b) shaping the theorems and/or axioms into a constructive tool for program composition.
3c) doing the same for multi-program composition.
4) to continue my study about the techniques for fighting “spaghetti” with particular reference to
4a) the logical aspects of it — “how to make the program modules correspond to the proof modules”
4b) the quantative aspects of it, such as “identifies explosion”
4c) the flexibility aspect, i.e. mapping programs on each other.
4d) robustness, in particular physical compactification of the basss [sic] of basic assertions.
5) to develop the necessary mathematics to control behaviour and design of systems with asynchronous components and distributed control, such that
5a) local behaviour be “independent of” total configuration specification
5b) the system be “self-stabilizing”.
5c) successful stabilization can be detected.
6) to transmit my fears with regard to LSI-quality control.
6a) with regard to the design
6b) with regard to the necessary quality control regarding individual instances.
(This is a clear case of research that I cannot do “all by myself”. It ties with my notions about “robustness”.)
7) continue to think about and hopefully isolate the current hardware characteristics that exert such a strong pressure to make spaghetti and then find out, whether such features could be avoided.
All this I regard as work that must be done in free interchange with the outer world. The book, for instance, should be published via the normal channels: I do not hesitate to suggest this as B's market should profit more than anyone else's [sic] from a better understanding of programming.
The attitude towards my work is that it should be fit for publication and I expect to continue to submit at regular intervals articles to scientific journals. Also this I regard in B's interest: if I have the function of “flag” as well, I should not fade!