D.C. Dennet is a scientific philosopher. He is deeply concerned with questions and stories about the human mind, consciousness, free will, the status of men in the order of creatures. The stored program computer is a key concept in his philosophy.
According to Dennet the computer shows that we do not need to come up with wonderfull stories about the special status of the human mind. Again and again Dennett tries to sell his own story to his opponents, those who are in need of “wonder tissues”, to “explain” the working of the human mind.
He explains his students how the computer works in order to unveal the secrets of the power of the machine. By showing the students where the power of the computer comes from he tries to make clear that the evolution of the machine eventually leads to a computer that equals the power of the human mind.
Where does the power of the computer come from? Or how does a computer work?
From the time I was a student (I studied mathematics and computer science in the 70ies at the University of Twente in the Netherlands) these questions have been lurking in the back of my mind, popping up from time to time. I have read many texts that describe the working of the computer. I teached students how to program computers in logical, functional imperative, and object-oriented programming languages. I programmed computers in order to allow people have a dialogue with the computer in Dutch or English. I gave courses in formal language theory, mathematical logic, computability theory, machine learning, and conversational analyses. I learned my students to program a Universal Turing Machine as well as a Register Machine, the basic mathematical models of the stored program computer, precursors of all modern computers.
But I always missed a satisfying answer to this question: how does a computer work? How makes a computer a computer?
From Louk Fleischhacker, my master in Philosophy of Mathematics and Technology, I learned that a satisfying answer to the question how the computer works cannot be given without understanding mathematics, without understanding what it means to compute something. Indeed, the computer would not be possible without a feature of metamathematics: that the language of arithmetics can be considered a mathematical structure and that the artihmetical operations can be formalized as operations on a formal language.
There are at least two types of answers to the question how a computer works.
There is the technical answer. Dennett gives a technical answer. He explains how the register machine works by showing and teaching his students how to program the register machine using a very simple programming language. Step by step he explains what the machine does with the instructions.
Technical answers like this never satisfied me.
One of the answers I gave to people who I asked “do you know how the computer works?” I gave by the following demonstration.
I hold a piece of paper for my mouth and I shout “Move!”. The moving of the paper I then explained by saying: “you see, the paper understands my command.” In a sense (Dennett would say “sort of” understands!). In what sense? Well, the meaning of the word confirms the effect of the utterance of the word: the paper moves as if it understands what I mean with uttering the word. This is an essential feature of the working of the computer. Note that the movement of the piece of paper is conditional on my uttering of the word. There is a one-to-ne correspondence between the meaning of the word and the effect of uttering it.
The computer is a “language machine”. You instruct it by means of a language. The hardware is constructed so that the effect of feeding it with the tokens satifies the meaning that the tokens have. Therefore the programmer has to learn the language that the machine “sort-of” understands.
What has this to do with mathematics?
An demonstration I gave people in answer to the question “how does a computer compute the sum of two numbers?” runs as follows. I demonstrate how a computer computes 2 plus 3. First I put 2 matches on an overhead projector. Then I put another 3 matches on a second projector. Then one by one I move the three matches from the second projector to the first project. And look: the result can be read off from the second projector: five matches.
Explanation: the two and three matches stand for the numbers 2 and 3 respectively. The moving of the 3 matches to the first projector stands for the addition operation: a repetition of adding one until there is no match left on the second projector. You might say that I follow a conditional branching instruction: if there is a match on the second projector take a match and put it on the first projector; else stop and read off the result.
This second way of explanation of how the computer works comes close to a technical type of explanation. But it is much simpler than the explanation by means of the register machine. Because of the simplicity of the demonstration I think most people did not took my demonstration as a serious answer to the question how a computer works. But I believe it shows an essential feature of the computer. A feature that Dennett misses when he tries to explain the power of the computer.
According to Dennett the power of the register machine is in the conditional branching instruction. Why?
“As you can now see, Deb, Decrement-or-Branch, is the key to the power of the register machine. It is the only instruction that allows the computer to “notice” (sorta notice) anything in the world and use what it notices to guide its next step. And in fact, this conditional branching is the key to the power of all stored-program computers, (…)’’ (From: Intuition Pumps. The same text – without the bracketed sorta notice – can be found in Dennett’s lecture notes The secrets of computer power revealed , Fall 2008).
What Dennett misses, and what is quite essential, is that every instruction is a conditional instruction. Not just the Deb instruction. When we instruct the computer by pressing a key or a series of keys the computer “notices something in the world” and acts accordingly. This is precisely the feature I try to make clear by my first demonstration. The set up demonstration (the piece of paper held in front of the mouth) is such that it “notices” the meaning of the word “move”. How do we know? Because of the way it response to it. We see the the computer responds in correspondance to the meaning and goal of our command and we say that it “understands” what we mean. Every instruction is conditional because if the instruction is not given it is not responded to by the computer.
Yet, the conditional instruction is special. It is the explicit form of the conditional working of the machine. But it assumes the implicit conditional working of the instructions we give to the computer. Just like application of the formal rule of modus ponens assumes the implicit use of this rule. (see Lewis Carrol’s “What the tortoise said to Archilles”).