Human Engineering of Programming Languages
The term human engineering is not that widely used when talking about programming languages, but arguably it is the most important job of a language designer. Closely related to the term ergonomics , human engineering is the act of ensuring that a design is fit for use by humans. In the context of a programming language, that means the language should help prevent errors during the construction of a program, and be designed so as to faithfully communicate the intended meaning of the program from the programmer both to the readers, and to the automated tools that might analyze the program or convert it into a machine executable form. One well known technique for preventing errors is to require (or at least allow) some degree of checked redundancy . That is, you can say some things that could potentially be inferred from earlier (or later) parts of a communication, because the redundancy enables an automated check that the intent of the communication was correctly captured in the gi