next up previous
Next: An alternative account Up: Patrick J. Hayes: What Previous: Introduction

Real computers

First, I take it as simply obvious both that computers exist and that not everything is a computer, so that, contra Searle, the concept of ``computer'' is not vacuous.

By ``computer'' I mean a machine which performs computations, or which computes. On this understanding, a Turing machine is not a computer, but a mathematical abstraction of a certain kind of computer.

Computer science recognises many kinds of computer and computation, and we should try to include them all. For example, the notion of a ``virtual machine'' is fairly central, so an adequate account of computer must somehow account for virtual machines.

[Istvan Berkeley:] There is a problem here, because it is perfectly possible to instantiate a Turing machine (not of course a universal Turing machine) on a regular Von Neumann machine as a virtual machine. But according to the above, this would make Turing machines computers, thereby contradicting the previous claim.

(In reply, I would urge a distinction between a Turing machine itself - a mathematical abstraction - and an implementation of it as a virtual machine running on a physical computer. Implemented virtual machines have many of the characteristics of physical machines: they operate in real time at measurable speeds, can have causal interactions with their surroundings, and so on.)

For another example, many computers do not compute functions in the traditional sense of computability theory; they do not take inputs, process them and then produce outputs, but rather interact continuously with a changing environment, playing the role of a controller or an advisor.

Computers contain and manipulate symbols. To a philosopher this is one of the most controversial claims and to a computer scientist one of the most obvious. This contrast needs to be accounted for. One way is to defend one or the other position; another is to look for a difference in meaning. For example, one can say that computation has access only to the forms of these symbols, which are therefore mere patterns, and have no meaning to the computer. This has the makings of an argument against the ``computationalist'' approach to describing the mind, so has generated fierce opposition.

One approach to describing a computer is as something whose physical or causal states mirror the state-transitions of a suitable abstract machine, defined mathematically. This has the attraction of allowing any suitable physical substrate, so that an abstract machine can be ``implemented'' in many ways. Many elaborations on this theme have been given, but I find them all unsatisfactory, for a number of reasons.

First, this kind of characterisation is too restrictive. We don't have a single adequate abstract account of ``computer,'' so any such account will miss some things: there will be computers which don't fit any particular abstract characterisation. For example, very few electronic computers have the state-transition structure of a Turing machine. Of course one can add extended abstract descriptions (multitape machines, branching automata, etc.), but clearly this process will never properly capture the notion of being a computer, just as no jeweller's catalog will capture the notion of ``jewellery.'' One answer here is to refer to Church's thesis and the fact that there are classes of univeral machines. But this confuses one of the distinctions mentioned earlier.There is no universal machine for computers, only for computability. That a Turing machine can compute any computable function does not mean that it can serve as an adequate model for every computational process.

Selmer Bringsjord disagreed, objecting to the ``jeweller's catalog'' metaphor.

[Bringsjord:] A jewellery catalog shows pictures of jewellry, and I agree that it's therefore implausible that such a catalog can serve as a definition of jewellery (though I suppose an ostensive definition ought at least to be considered in our deliberations). But the analog of the catalog in my [definition of computer], viz., the infinite collection of mathematical machines over which we have excellent command (Turing machines, Register machines, neural nets (with rational coefficients), cellular automata, abaci, etc., ad infinitum), is not offered as the definition. The ``catalog,'' in this case, is designed to convey the essence of computerhood; an account of how that essence figures in the definition in question is the definition!

Second. On the other hand, this kind of characterisation is also not restrictive enough. It allows too many physical systems to be considered as computers. For example, Putnam has observed that any physical object - say, a rock - can be regarded as an implementation of any finite-state computational process. While the details of Putnam's argument have been criticised and its scope shown to be limited, it still carries some force. For example, one objection is that the argument only works for a finite-state machine and fails as soon as there are inputs and outputs. But consider a limited part of a single computation, say the process of multiplying 27 by 3. This is describable by a finite-state machine, so Putnam's construction can now be given: but surely it is ridiculous to be able to interpret a rock as performing any computation, even one this simple and particular.
[Bringsjord:] I have dealt with this problem in painstaking and (by my lights) efficacious detail in (Bringsjord, 1995). The trick is that my definition of computerhood - (D3), in the paper - contains a possibility operator that functions as a parameter that can be adjusted depending upon how strict one wants to be on the Putnam issue. The basic idea is that on some senses of ``possible,'' a group of suitably configured pieces of granite becomes a computer, while on other senses of this term such a composite object is not a computer.
Finally, this kind of account is intuitively backwards. We don't recognize something as being a computation because it is describable as a certain kind of machine: rather, we recognise some machines as performing computations. The concept of being a computer seems primary to that of Turing machine or finite-state machine or any other particular kind of machine. In the early part of this century, people were called ``computers,'' and they earned a living by performing computations, often using specialised algorithms: the entire vocabulary was being used in more or less its modern sense before Turing was born.
[Bringsjord:] This is very weak. ... People had a notion of algorithm (computation, computer) before Turing (and relevant others). But it doesn't follow from this that a definition of computerhood (and related concepts) can't make reference to mathematical objects only discovered in the 20th century.]

next up previous
Next: An alternative account Up: Patrick J. Hayes: What Previous: Introduction

Fri Jul 25 22:00:35 MEST 1997