Journal Article10.1145/362929.362947
Letters to the editor: go to statement considered harmful
1K
TL;DR: My considerations are that, although the programmer's activity ends when he has constructed a correct program, the process taking place under control of his program is the true subject matter of his activity, and that his intellectual powers are rather geared to master static relations and his powers to visualize processes evolving in time are relatively poorly developed.
read more
Abstract: For a number of years I have been familiar with the observation that the quality of programmers is a decreasing function of the density of go to statements in the programs they produce. More recently I discovered why the use of the go to statement has such disastrous effects, and I became convinced that the go to statement should be abolished from all "higher level" programming languages (i.e. everything except, perhaps, plain machine Code). At'that time I did not attach too much importance to this discovery ; I now submit my considerations for publication because in very recent discussions in which the subject turned up, I have been urged to do so. My first remark is that, although the programmer's activity ends when he has constructed a correct program, the process taking place under control of his program is the true subject matter of his activity, for it is this process that has to accomplish the desired effect; it is this process that in its dynamic behavior has to satisfy the desired specifications. Yet, once the program has been made, the "making" of the corresponding process is delegated to the machine. My second remark is that our intellectual powers are rather geared to master static relations and that our powers to visualize processes evolving in time are relatively poorly developed. For that reason we should do (as wise programmers aware of our limitations) our utmost to shorten the conceptual gap between the static program and the dynamic process, to make the correspondence between the program (spread out in text space) and the process (spread out in time) as trivial as possible. Let us now consider how we can characterize the progress of a process. (You may think about this question in a very concrete manner: suppose that a process, considered as a time succession of actions, is stopped after an arbitrary action, what data do we have to fix in order that we can redo the process until the very same point?) If the program text is a pure concatenation of, say, assignment statements (for the purpose of this discussion regarded as the descriptions of single actions) it is sufficient to point in the program text to a point between two successive action descriptions. (In the absence of go to statements I can permit myself the syntactic ambiguity in the last three words of the previous sentence: if we parse …
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Dynamically structured data
Nazim H. Madhavji,I. R. Wilson +1 more
TL;DR: This paper examines data structures and operations on them, and proposes some new features in programming languages principally in the areas of data description and data usage.
5
Toward a unified paradigm for constructing and understanding robot processes
C. Hancock
- 03 Sep 2002
TL;DR: structured concurrent programming adopts a diverse set of process structures as primary language elements with three consequences: (i) explicit process management via process ID's is not used; (ii) previously disjoint programming paradigms are integrated more tightly, than before; and it becomes more feasible for textual programs to execute "in place" in a live programming environment.
5
Towards assuring non-recurrence of faults leading to transaction outages: an experiment with stable business applications
Anushri Agrawal,Ravindra Naik +1 more
- 24 Feb 2011
TL;DR: The analysis and the results of the successful attempt to automatically detect the causes of software faults introduced while making changes to stable business applications are presented, using structural analysis and control flow analysis techniques.
5
Engineering and Software Engineering
Michael Jackson
- 01 Jan 2011
TL;DR: The famous 1968 conference was motivated by the belief that software development should be based on “the types of theoretical foundations and practical disciplines that are traditional in the established branches of engineering” yet after forty years of currency the phrase ‘software engineering’ still denotes no more than a vague and largely unfulfilled aspiration.
Reflections on the Evolution of Algorithmic Language
Mark B. Wells
- 01 Jan 1980
TL;DR: It is observed that in spite of the seeming proliferation of programming languages at present, the various features are being sorted out, and in fact general-purpose languages are converging toward everyday algorithmic language.
5
References
A contribution to the development of ALGOL
Niklaus Wirth,C. A. R. Hoare +1 more
TL;DR: The main changes were: (1) verbal improvements and clarifications, many of which were kindly suggested by recipients of the original draft; (2) additional or altered language features, in particular the replacement of tree structures by records as proposed by the second author.
218
•Book
Flow diagrams, Turing machines and languages with only two formation rules
Corrado Böhm,Giuseppe Jacopini +1 more
- 01 Jan 1979
TL;DR: Bohm and Jacopini as mentioned in this paper showed that any flowchart can be drawn from combinations of standard "structured" flowchart elements; they did not prove that any COBOL program can be written without goto statements.
Flow diagrams, turing machines and languages with only two formation rules
Corrado Böhm,Giuseppe Jacopini +1 more
TL;DR: In the first part of the paper, flow diagrams are introduced to represent inter ah mappings of a set into itself due to a suitable extension of the given set and of the basic mappings defined in it.
Related Papers (5)
Edsger W. Dijkstra
- 01 Jan 2002
O. J. Dahl,Edsger W. Dijkstra,C. A. R. Hoare +2 more
- 01 Jan 1972
Edsger W. Dijkstra
- 01 Jan 1970