C. Hoare: Hints on programming language design (1973) [pdf](flint.cs.yale.edu) |
C. Hoare: Hints on programming language design (1973) [pdf](flint.cs.yale.edu) |
"Many years later we asked our customers whether they wished us to provide an option to switch off these checks in the interests of efficiency on production runs. Unanimously, they urged us not to--they already knew how frequently subscript errors occur on production runs where failure to detect them could be disastrous. I note with fear and horror that even in 1980, language designers and users have not learned this lesson. In any respectable branch of engineering, failure to observe such elementary precautions would have long been against the law."
=> I note with fear and horror that even in 1980, language designers and users have not learned this lesson.
https://news.ycombinator.com/item?id=3241241 - Nov 16, 2011 (5 comments)
https://news.ycombinator.com/item?id=10102860 - Aug 22, 2015 (25 comments)
"This paper must clearly be read in the context of its date of composition (1973). The relative weight of comment on debugging and reasoning about programs clearly changed as a result of his own later research. Also, a richer notion of types would be appropriate today. But the sound advice in this paper transcends any minor aspects in which it might be considered to be out of date."
Discussed in the paper:
- Simplicity
- Security
- Fast translation
- Efficient object code
- Readability
- Comment conventions
- Syntax
- Arithmetic expressions
- Program structures
- Variables
- Block structure
- Procedures and parameters
- Types
- Language-feature design
(By the way: Simula 67 was mostly influenced by Simula I; both Simula versions are an extension of Algol 60; with some minor exceptions Algol 60 is a subset of Simula 67 - as later Stroustrup did it with C and C++).