EWD 251

Requirements of Programming Tools.

We feel that the design of a programming language should be guided by a conception as clear as possible of the requirements it should satisfy. Regarding a programming language as a tool to be used by the programmer and taking the position that, for the tool to be really useful, it should assist the programmer as much as possible in the most difficult aspects of his task, we hope to derive the necessary clues from a careful analysis of (nature and source of) his difficulties, giving due recognition to the growth (in scale and scope) of his task.

Among the major difficulties we recognize his duty to create reliable mechanisms and to create programs in such a fashion that the possibility of program modification has been catered for as much as desirable. These difficulties are mentioned explicitly because from their analysis we expect, if not yet a discipline, at least new guidelines for the creating programmer.

We have avoided the word "language" in our subject description and have used the somewhat more general term "tool" as an expression of our feeling that current practice of program composition is in urgent need of revision and the "programming languages" as they are used now may turn out to be too tightly connected with the current practice to remain an adequate term for the tools eventually needed.

We expect the Working Group to act as a forum between a rather small number of sufficiently kindred spirits with sufficiently different backgrounds, so that it can provide an opportunity for mutual education and inspiration.

We feel it appropriate to suggest that IFIP could sponsor this activity. The motivation of the effort seems well-justified, its potential incompatibility with vested interests (of shorter range) could well justify some protection such as IFIP could provide.

Edsger W.Dijkstra

transcribed by Felipe Febrero Hidalgo
revised Sun, 19 Dec 2004