Difference between revisions of "Computing device"

From Computer History Wiki
Jump to: navigation, search
m (Further reading: +Reckoners)
(Further tweak to program/configure distinction)
Line 1: Line 1:
'''Computing devices''' are a more general class of devices which could perform complicated calculations than 'computers', the meaning of which is generally now 'stored-program computing device' - i.e. the control [[program]] (which, it must be emphasized, is a specified series of elementary steps, not simply the ability to make physical changes to the device to change what calculation it performs - even if those changes are instantiated in something that was added to the device for that exact purpose, like the [[plug-board]]s of the [[ENIAC]]) - is stored in [[memory]] that the computer can modify, allowing the program to change itself if it desires).
+
'''Computing devices''' are a more general class of devices which could perform complicated calculations than 'computers', the meaning of which is generally now 'stored-program computing device' - i.e. the [[program]] (which, it must be emphasized, is a specified series of elementary steps, stored in the device in some form, not simply the ability to make physical changes to the device to change what calculation it performs - even if those changes are instantiated in something that was added to the device for that exact purpose, like the [[plug-board]]s of the [[ENIAC]]) - is stored in [[memory]] that the computer can modify, allowing the program to change itself if it desires).
  
 
Whether or not the ability to modify its own program is important, for something to be classified as a 'computer', can be debated; modern computers almost always run [[pure code]] (in part because [[self-modifying code]] can be difficult to understand and [[debug]]), so it is probably not critical; indeed, [[embedded system]]s usually use [[read-only memory|ROM]] for their program storage. On the other hand, program modifiability is a key aspect of classical [[Turing machine]]s; but it might be possible for a machine running out of ROM to [[emulator|emulate]] a Turing machine, thereby making such a machine a Turing machine. It is also possible that having the ability to do [[conditional branch]]es could be an alternative to being able to modify the program, for [[Turing complete]]ness.
 
Whether or not the ability to modify its own program is important, for something to be classified as a 'computer', can be debated; modern computers almost always run [[pure code]] (in part because [[self-modifying code]] can be difficult to understand and [[debug]]), so it is probably not critical; indeed, [[embedded system]]s usually use [[read-only memory|ROM]] for their program storage. On the other hand, program modifiability is a key aspect of classical [[Turing machine]]s; but it might be possible for a machine running out of ROM to [[emulator|emulate]] a Turing machine, thereby making such a machine a Turing machine. It is also possible that having the ability to do [[conditional branch]]es could be an alternative to being able to modify the program, for [[Turing complete]]ness.

Revision as of 00:32, 5 December 2023

Computing devices are a more general class of devices which could perform complicated calculations than 'computers', the meaning of which is generally now 'stored-program computing device' - i.e. the program (which, it must be emphasized, is a specified series of elementary steps, stored in the device in some form, not simply the ability to make physical changes to the device to change what calculation it performs - even if those changes are instantiated in something that was added to the device for that exact purpose, like the plug-boards of the ENIAC) - is stored in memory that the computer can modify, allowing the program to change itself if it desires).

Whether or not the ability to modify its own program is important, for something to be classified as a 'computer', can be debated; modern computers almost always run pure code (in part because self-modifying code can be difficult to understand and debug), so it is probably not critical; indeed, embedded systems usually use ROM for their program storage. On the other hand, program modifiability is a key aspect of classical Turing machines; but it might be possible for a machine running out of ROM to emulate a Turing machine, thereby making such a machine a Turing machine. It is also possible that having the ability to do conditional branches could be an alternative to being able to modify the program, for Turing completeness.

Complex computing devices (i.e. things considerably more complex than a simple adding machines) generally preceded the creation of computers (as defined above); although as Michael Williams observed, "If you add enough adjectives to a description you can always claim [a particular machine to be the 'first']."

See also

Further reading

External links