A programmable machine. The two principal characteristics of a computer are:
All general-purpose computers require the following hardware components:
In addition to these components, many others make it possible for the basic components to work together efficiently. For example, every computer requires a bus that transmits data from one part of the computer to another.
Computers can be generally classified by size and power as follows, though there is considerable overlap: