Skip to main content

Recipes, Algorithms, and Programs


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.

This is a preview of subscription content, access via your institution.


  1. Biuso, Julia (1997), Italian Cooking, Newport Beach: C.J. Publishing.

    Google Scholar 

  2. Cleland, Carol E. (1993). ‘Is the Church-Turing Thesis True?’, Minds and Machines 3, pp. 283–212.

    Google Scholar 

  3. Cleland, Carol E (1995), ‘Effective Procedures and Computable Functions’, Minds and Machines 5, pp. 9–23.

    Google Scholar 

  4. Colburn, Timothy (1999), ‘Software, Abstraction, and Ontology’, The Monist 82, pp. 3–19.

    Google Scholar 

  5. Copeland, Jack (1998) ‘Turing's O-machines, Searle, Penrose and the Brain,’ Analysis 58.2, pp. 129–131.

    Google Scholar 

  6. Fetzer, James (1988), ‘Program Verification: The Very Idea’, Communications of the ACM 32, pp. 1048–1063.

    Google Scholar 

  7. Fetzer, James (1991), 'Philosophical Aspects of Program Verification? 'Minds and Machines 1 pp. 197–216.

    Google Scholar 

  8. Goodman, Nelson (1983), Fact, Fiction and Forecast, Cambridge: Harvard University.

    Google Scholar 

  9. Hennie, Fred (1977), Introduction to Computability, Reading: Addison-Wesley.

    Google Scholar 

  10. Kripke, S. A. (1982), Wittgenstein on Rules and Private Language, Oxford: Blackwell.

    Google Scholar 

  11. Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs: Prentice-Hall.

    Google Scholar 

  12. Smith, N. K., trans., Kant's Critique of Pure Reason (V, 1), New York: St. Martins.

  13. Turing, Alan (1939), ‘Systems of Logic based on Ordinals’, Proceedings of the London Mathematical Society series 2, 45, pp. 161–228.

    Google Scholar 

Download references

Author information



Rights and permissions

Reprints and Permissions

About this article

Cite this article

Cleland, C.E. Recipes, Algorithms, and Programs. Minds and Machines 11, 219–237 (2001).

Download citation

  • action
  • algorithm
  • computer program
  • effective procedure
  • precisely specified instruction
  • quotidian procedure
  • symbol
  • Turing machine