Program verification: the very idea
Communications of the ACM
Introduction to Computability
Computation: finite and infinite machines
Computation: finite and infinite machines
Minds and Machines
Reflections on Gödel's and Gandy's Reflections on Turing's Thesis
Minds and Machines
The Scope of Turing's Analysis of Effective Procedures
Minds and Machines
Toward a Formal Philosophy of Hypercomputation
Minds and Machines
Is There a Nonrecursive Decidable Equational Theory?
Minds and Machines
Hypercomputation by definition
Theoretical Computer Science - Super-recursive algorithms and hypercomputation
Theoretical Computer Science - Super-recursive algorithms and hypercomputation
Problems for a Philosophy of Software Engineering
Minds and Machines
Hi-index | 0.00 |
In the technical literature of computer science, the concept of an effective procedure is closely associated with the notion of an instruction that precisely specifies an action. Turing machine instructions are held up as providing paragons of instructions that "precisely describe" or "well define" the actions they prescribe. Numerical algorithms and computer programs are judged effective just insofar as they are thought to be translatable into Turing machine programs. Nontechnical procedures (e.g., recipes, methods) are summarily dismissed as ineffective on the grounds that their instructions lack the requisite precision. But despite the pivotal role played by the notion of a precisely specified instruction in classifying procedures as effective and ineffective, little attention has been paid to the manner in which instructions "precisely specify" the actions they prescribe. It is the purpose of this paper to remedy this defect. The results are startling. The reputed exemplary precision of Turing machine instructions turns out to be a myth. Indeed, the most precise specifications of action are provided not by the procedures of theoretical computer science and mathematics (algorithms) but rather by the nontechnical procedures of everyday life. I close with a discussion of some of the rumifications of these conclusions for understanding and designing concrete computers and their programming languages.