Characteristic errors in programming languages

This paper examines the features of a small ALGOL-like language for characteristic errors. These errors occur in the general use of a language feature, rather than its use in a particular program. Language design and defensive programming are suggested as ways of dealing with these errors. Data collected in observing 33 subjects writing small (43-216 lines), but sophisticated programs demonstrate that these errors are both frequent and persistent in the development of programs.