Published online by Cambridge University Press: 01 January 2022
This paper offers an account of what it is for a physical system to be a computing mechanism—a system that performs computations. A computing mechanism is a mechanism whose function is to generate output strings from input strings and (possibly) internal states, in accordance with a general rule that applies to all relevant strings and depends on the input strings and (possibly) internal states for its application. This account is motivated by reasons endogenous to the philosophy of computing, namely, doing justice to the practices of computer scientists and computability theorists. It is also an application of recent literature on mechanisms, because it assimilates computational explanation to mechanistic explanation. The account can be used to individuate computing mechanisms and the functions they compute and to taxonomize computing mechanisms based on their computing power.
Thanks to the many people who discussed computing mechanisms with me. For comments on previous drafts, I'm especially indebted to Carl Craver,, John Gabriel, Peter Machamer, Corey Maley, the editor, and members of the St. Louis Philosophy of Science Reading Group. Between 2002 and 2005, ancestors of this paper were presented to the Canadian Society for the History and Philosophy of Science, Computing and Philosophy (CAP@CMU), the Second Reichenbach Conference, the SSPP, the University of Pittsburgh, the University of Georgia, and Georgia State University. Thanks to the audiences for their feedback. The writing of this paper was supported in part by a grant from the University of Missouri—St. Louis.