|Computational theory||Representation and algorithm||Hardware implementation|
|What is the goal of the computation, why is it appropriate, and what is the logic of the strategy by which it can be carried out?||How can this computational theory be implemented? In particular, what is the representation for the input and output, and what is the algorithm for the transformation?||How can the representation and algorithm be realized physically?|
The three levels at which any machine carrying out an information-processing task must be understood.
The Three Levels
We can summarize our discussion in something like the manner shown in Figure 1-4, which illustrates the different levels at which an information-processing device must be understood before one can be said to have understood it completely. At one extreme, the top level, is the abstract computational theory of the device, in which the performance of the device is characterized as a mapping from one kind of information to another, the abstract properties of this mapping are defined precisely, and its appropriateness and adequacy for the task at hand are demonstrated. In the center is the choice of representation for the input and output and the algorithm to be used to transfer one into the other. And at the other extreme are the details of how the algorithm and representation are realized physically - the detailed computer architecture, so to speak. These three levels are coupled, but only loosely. The choice of an algorithm is influenced for example, by what it has to do and by the hardware in which it must run. But there is a wide choice available at each level, and the explication of each level involves issues that are rather independent of the other two.
Consider a calculation machine and various possible implementations of mutiplication:
|Computational level||Multiplication 9x8=?|
|Algorithm / representation level||vs. 9+9+9+9+9+9+9+9=|
|Hardware implementation level||mechanical vs. electronic|