On DifferenceEngine, someone defined a computer as something that can "run stored programs that had conditional logic and iteration." A different way to word that might be that a computer can: 1. Run code 1. Run code repeatedly (iteration) 1. ''Not'' run code (conditionality) Does anyone know of the source for this? Does anyone know why this is considered the definition? One can imagine being able to build higher-level things like functions from these three primitives. It might be interesting to see a more formal treatment of this definition. ---- If you're the kind of person who is attracted by the abstract and theotretical, a computer is often defined as an machine which can solve any problem solvable by a UniversalTuringMachine. This definition arose out of AlanTuring and AlonzoChurch 's formal definition of an Algorithm, and what kind of problems are Computable as opposed to notComputable.