The impact of language design on the production of reliable software

The language in which programs are written can have a substantial effect on their reliability. This paper discusses the design of programming languages to enhance reliability. It presents several general design principles, and then applies them to particular language constructs. Since we can not logically prove the validity of such design principles, empirical evidence is needed to support or discredit them. Gannon has performed a major experiment to measure the effect of nine specific language design decisions in one context. Analysis of the frequency and persistence of errors shows that several decisions had a significant impact on reliability.

[1]  J. E. Freund,et al.  Modern Elementary Statistics , 1968 .

[2]  John A. Gould,et al.  Some Psychological Evidence on How People Debug Computer Programs , 1975, Int. J. Man Mach. Stud..

[3]  Edwin H. Satterthwaite Debugging tools for high level languages , 1972, Softw. Pract. Exp..

[4]  Lance A. Miller Programming by Non-Programmers , 1974, Int. J. Man Mach. Stud..

[5]  Laurence Mark Weissman,et al.  A methodology for studying the psychological complexity of computer programs. , 1974 .

[6]  Peter Naur,et al.  Programming by action clusters , 1969 .

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

[8]  Friedrich Ludwig Bauer Advanced Course on Software Engineering , 1973 .

[9]  淵 一博,et al.  Report on the Algorithmic language ALGO 60 , 1960 .

[10]  Jr. John Dennis Gannon,et al.  Language design to enhance programming reliability. , 1975 .

[11]  B. L. Clark,et al.  The System Language for Project SUE , 1971, SIGPLAN Symposium on Languages for System Implementation.

[12]  Edward A. Youngs Human Errors in Programming , 1974, Int. J. Man Mach. Stud..

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

[14]  C. A. R. Hoare,et al.  Procedures and parameters: An axiomatic approach , 1971, Symposium on Semantics of Algorithmic Languages.

[15]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[16]  Gerald M. Weinberg,et al.  Psychology of computer programming , 1971 .

[17]  B. L. Clark,et al.  Reflections on a language designed to write an operating system , 1973, SIGPLAN-SIGOPS Interface Meeting.

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