PMS 010 - Gualtiero Piccinini - The Mind as Neural Software? Revisiting Functionalism, Computationalism, and Computational Functionalism

“The Mind as Neural Software? Revisiting Functionalism, Computationalism, and Computational Functionalism” by Gualtiero Piccinini, University of Missouri – St. Louis.

ABSTRACT: Defending or attacking either functionalism or computationalism requires clarity on what they amount to and what evidence counts for or against them. My goal here is not to evaluate their plausibility. My goal is to formulate them and their relationship clearly enough that we can determine which type of evidence is relevant to them. I aim to dispel some sources of confusion that surround functionalism and computationalism, recruit recent philosophical work on mechanisms and computation to shed light on them, and clarify how functionalism and computationalism may or may not legitimately come together.

[Link to full text of article]

[Link to further info on PMS WIPS]

2 Responses to “PMS 010 - Gualtiero Piccinini - The Mind as Neural Software? Revisiting Functionalism, Computationalism, and Computational Functionalism”

  1. Corey Maley says:

    Gualtiero,

    There is a very small, almost certainly insignificant point that has been bothering me. You claim that Universal Turing Machines execute programs, and I am not so sure.

    It is certainly uncontroversial that a UTM takes in an input string that has two distinct parts: a description of a TM, and an input. The UTM then outputs what the described TM would have produced as output if given the input. However, I am not certain that it does this by executing a program; rather, it seems that it may be simulating a particular TM.

    In a standard computer program, after it has been compiled into assembly (or really, even machine) language, it seems that the list of instructions specifies the particular operations that the processor (and in turn, the whole computer) will take. Each of these can then be given a mechanistic explanation at the level of the digital circuitry. So the program really is a specification of what, exactly, the machine will do, instruction by instruction.

    The UTM, on the other hand, takes in something like an architectural description of a TM, and by virtue of its own state transition table (STT), simulates that TM. It seems that, if a TM executes a program at all, the program is the STT. But the TM description given to a UTM does not alter the UTM’s STT; rather, the UTM’s STT is such that, at a higher-order level of description, some of its operations will simulate the operations of any particular TM description.

    Again, I don’t think anything significant turns on this, but I wonder what you think.

    Best,

    Corey

  2. Corey, you raise a very interesting question. Two preliminary points: (1) the question of what does and does not count as program execution is, to some extent, a matter of stipulation (although we should strive to make good stipulations; e.g., stipulations that respect relevant scientific practices); (2) I agree that UTMs simulate ordinary (non-universal) TMs. It remains to be seen whether (it’s a good idea to say that) UTMs simulate ordinary TMs by executing programs.

    I think you make an important conceptual point: there are significant differences in the way UTMs produce their output vis a vis the way ordinary digital computers do. But there are also important similarities: both compute by responding to explicit instructions, and they compute different things depending on what instructions they have. I see this as good enough reason to subsume both under the rubric of program execution. Nevertheless, a detailed theory of computing mechanisms should identify the differences between the two mechanisms and account for them. It would be interesting to read a detailed comparison and contrast of the two mechanisms (regardless of how we call them).

    There is also a historical reason for labeling both UTMs and ordinary computers as program executors. Turing and von Neumann were among the designers of the first modern (electronic) digital computers (i.e., computers responding to programs that are executed so as to make the machine universal up to its limitations of time and memory). Both Turing and von Neumann were trying to design physical machines that would approximate the computational universality of UTMs. And UTMs are universal because they respond to explicit instructions written on their tape. So using the concept of program execution for both the processes of UTMs and those of digital computers is a way to mark the impact that UTMs had on the origin of modern digital computers. (As I point out elsewhere, though, this impact should not be overestimated either.) It would be interesting to know at what point the term ‘program execution’ became commonly used for digital computers, and whether and when computer scientists started using it to describe UTMs. Does anyone know?