+Yonatan Zunger recently reshared a youtube clip of the Writer, a 200 year old programmable automata that can write arbitrary words on a card. In the comments, someone claimed that the machine wasn’t technically a “computer” because it wasn’t computing anything. But there’s no mistake; the automata is certainly a computer, and it is performing a computation.
Computation is defined in terms of the possible performances of a Turing machine. A Turing machine executes a formally specified function: given some starting state, a Turing machine executes a series of procedures (a “program”) that ultimately yield some final state. Any system that is formally equivalent to a Turing machine thus described is a computer.
The writer automaton is a computer in this sense. It takes as input the set of characters on the programmable disk, and through a set of finite procedures (rotations of the cam) the machine produces a set of outputs, which involves the performance of writing words on a card. That’s an act of computation; that doll is a computer.
Not only is the automata a computer, but any system that can be formally defined in terms of a set of procedures that takes an initial state into a final state can be called a “computation”. Whatever machine carries out those procedures is a “computer”. For instance, consider the water-boiling computer:
Initial state: liquid water
Final state: gaseous water
1. Put liquid water in a pot sufficintly close to Earth.
2. Put the pot on a working stove
3. Light the stove.
4. Bring the water to 100 degrees celsius
Properly executing the program will compute the gaseous water final state from the liquid water initial state. If I’m the one executing this program, than for that time I’m a water-boiling computer.
This computer only handles a prettly limited set of procedures, so it can’t do very much. There are plenty of ways to boil water that don’t use pots and stoves at all, and this computer wouldn’t recognize any of them. So this isn’t a very interesting case. For what it’s worth, the plow is also a computer. It performs the function of taking a field from an unplowed state to a plowed state. Althought it was an important tool, it isn’t a particularly interesting computer. When we think of computers, we tend to think of universal computers, which can execute any computable function, or run any program. Your laptop computer doesn’t just execute one or two functions; theoretically it can execute any program you give it. It is this universality that makes computers interesting and worth recognizing as a special class of agents.
We didn’t even know there were such a class of agents before roughly 1930, when Church and Godel and Turing formally defined the notion of computation. Before that, we had no reason to think that the activities of agents had any kind of generalized form. Pre-1930’s, boiling water was just boiling water, and not merely a particular instance of a more general kind. But after 1930, we now know that all functional processes belong to this general kind.
I am a computer. I am a thousand different computers at a time, depending on what I’m doing. I’m a part of many computers much larger than me, too, and I contribute to the massive, distributed computations they perform. I’m also made of computers much smaller than me, each of which is executing a function on which my life literally depends.