Difference between revisions of "Computing device"

From Computer History Wiki
Jump to: navigation, search
(Move list to separate page; say more about the dividing line)
(Conditional branches might make a computer)
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]] 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 control [[program]] 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.  
+
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 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']."
 
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']."
Line 11: Line 11:
 
==Further reading==
 
==Further reading==
  
 +
* Editor - William Aspray, [https://ed-thelen.org/comp-hist/CBC.html ''Computing Before Computers''], Iowa State University Press, Ames, 1990
 
* Editor - Brian Randell, [https://link.springer.com/book/10.1007/978-3-642-96145-8 ''The Origins of Digital Computers: Selected Papers''], Springer-Verlag, Berlin, Heidelberg, New York, 1973, 1982 (3rd edition)
 
* Editor - Brian Randell, [https://link.springer.com/book/10.1007/978-3-642-96145-8 ''The Origins of Digital Computers: Selected Papers''], Springer-Verlag, Berlin, Heidelberg, New York, 1973, 1982 (3rd edition)
 
* Editors - Nicholas Metropolis, Jack Howlett, Gian-Carlo Rota, [https://www.sciencedirect.com/book/9780124916500/a-history-of-computing-in-the-twentieth-century ''A History of Computing in the Twentieth Century''], Academic Press, New York, 1980
 
* Editors - Nicholas Metropolis, Jack Howlett, Gian-Carlo Rota, [https://www.sciencedirect.com/book/9780124916500/a-history-of-computing-in-the-twentieth-century ''A History of Computing in the Twentieth Century''], Academic Press, New York, 1980

Revision as of 14:29, 1 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 control program 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