Introducing Top-down Design

If we want a computer to solve a problem for us, we must develop an algorithm—a recipe which spells out explicitly and unambiguously the steps which must be carried out on the problem data to obtain a correct solution (where one exists) within a finite time. We must specify this algorithm so precisely that its instructions can be followed automatically by a computer. In other words, the algorithm must be written as a program in a programming language—a specially chosen notation in which we specify algorithms to a level of detail suitable for mechanical interpretation. We shall say more about programming languages in Section 1.3, and we shall devote many pages to showing the reader how to program in Pascal, a programming language which is particularly well suited for the specification of algorithms. However, the thrust of our book is that, although the final product of the programmer’s task is expressed in a programming language, the specific properties of the language should not enter into the early stages of algorithm development.