A reminder for language designers

Current programming languages offer limited support in the development and maintenance of programs. These languages do not always account for the human limitations of their users. Notably, few languages really promote ease of readability. This paper suggests nine design principles for the development of readable high level languages. Each principle is backed up by a discussion and several examples. Among the issues discussed are the limitation of the overall complexity, the design of function and procedure facilities, the design of data type facilities, and the correspondence between syntax and semantics.

[1]  William A. Wulf,et al.  BLISS: a language for systems programming , 1971, CACM.

[2]  Charles Antony Richard Hoare,et al.  Hints on programming language design. , 1973 .

[3]  Dennis P. Geller,et al.  IF-THEN-ELSE considered harmful , 1975, SIGP.

[4]  Edsger W. Dijkstra,et al.  Go To Statement Considered Harmful , 2022, Software Pioneers.

[5]  John C. Reynolds,et al.  GEDANKEN—a simple typeless language based on the principle of completeness and the reference concept , 1970, Commun. ACM.

[6]  Niklaus Wirth,et al.  On the Design of Programming Languages , 1974, IFIP Congress.

[7]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1959, Commun. ACM.

[8]  Frank Engel Draft proposed ANS FORTRAN BSR X3.9 X3J3/76 , 1976, SIGP.

[9]  Roman L. Weil Testing the understanding of the difference between call by name and call by value in ALGOL 60 , 1965, Commun. ACM.

[10]  John V. Guttag Abstract data types and the development of data structures , 1976, SIGMOD 1976.

[11]  Narain H. Gehani,et al.  Some ideas on data types in high level languages , 1976, SIGMOD 1976.

[12]  Mary Shaw,et al.  Abstraction and verification in alphard , 1976 .

[13]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1976, IEEE Trans. Software Eng..

[14]  Cornelis H. A. Koster Visibility and types , 1976, SIGMOD 1976.

[15]  Michael Marcotty,et al.  A genealogy of control structures , 1975, CACM.

[16]  Friedrich L. Bauer,et al.  Revised report on the algorithm language ALGOL 60 , 1963, CACM.

[17]  Mary Shaw,et al.  Global variable considered harmful , 1973, SIGP.

[18]  Donald E. Knuth,et al.  The remaining trouble spots in ALGOL 60 , 1967, Commun. ACM.

[19]  Edsger W. Dijkstra,et al.  Letters to the editor: go to statement considered harmful , 1968, CACM.

[20]  James J. Horning,et al.  Language design for programming reliability , 1975, IEEE Transactions on Software Engineering.

[21]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975 .

[22]  Donald E. Knuth,et al.  Structured Programming with go to Statements , 1974, CSUR.

[23]  J. J. Horning,et al.  Report on the programming language Euclid , 1977, SIGP.