ABSTRACT

THE NICE THING about computers is that they will do exactly what you tell them to do. Unfortunately, they will do it exactly, so you need to get your instructions exactly right.

Computers work by following programs which determine in excru­ ciating detail every little step that they take. The process of creating those programs is called programming. For most people, programming is an unnatural activity, in the literal sense that it is not something that they do naturally. In some sense, programming is similar to giving an­ other person a set o f instructions, or a recipe, for performing some task. But when you give instructions to people, you rely on their intelligence and their huge pool of background knowledge to fill in the details and to work out any ambiguities. A computer has no intelligence or background knowledge and absolutely no tolerance for ambiguity. To be correct, a program must specify the exact procedure to be followed, in full detail, taking all possible contingencies into account. And the programmer has only a small number o f resources to work with-some basic instructions and a limited number of ways o f combining them into more complex structures.