Philosophy & Technology

, Volume 29, Issue 1, pp 35–59 | Cite as

What an Algorithm Is

  • Robin K. HillEmail author
Research Article


The algorithm, a building block of computer science, is defined from an intuitive and pragmatic point of view, through a methodological lens of philosophy rather than that of formal computation. The treatment extracts properties of abstraction, control, structure, finiteness, effective mechanism, and imperativity, and intentional aspects of goal and preconditions. The focus on the algorithm as a robust conceptual object obviates issues of correctness and minimality. Neither the articulation of an algorithm nor the dynamic process constitute the algorithm itself. Analysis for implications in computer science and philosophy reveals unexpected results, new questions, and new perspectives on current questions, including the relationship between our informally construed algorithms and Turing machines. Exploration in terms of current computational and philosophical thinking invites further developments.


Algorithm Philosophy of computer science Church-Turing thesis Mathematical ontology 



I wish to thank William J. Rapaport of the University at Buffalo for his cogent suggestions and steady encouragement, and to note that any failing in the ideas or treatment is mine alone. Anonymous reviewers improved this work via many good suggestions, and have my sincere gratitude.


  1. Cleland, C.E. (2001). Recipes, algorithms, programs. Minds and Machines, 11, 219–237.CrossRefGoogle Scholar
  2. Dodig-Crnkovic, G. (2011). Significance of models of computation, from turing model to natural computation. Minds and Machines, 21, 301–322. doi: 10.1007/s11023-011-9235-1.CrossRefGoogle Scholar
  3. GameTable Online Inc. (2013). Rules: Checkers. Available online at
  4. Gardner, M. (1970). Mathematical games—the fantastic combinations of John Conway’s new solitaire game “Life”. Scientific American, 223, 120–123.CrossRefGoogle Scholar
  5. Gurevich, Y. (2000). Sequential abstract-state machines capture sequential algorithms. ACM Transactions on Computational Logic (TOCL), 1(1), 77–111.CrossRefGoogle Scholar
  6. Gurevich, Y. (2011). What is an algorithm? Available online at
  7. Hill, R.K. (2013). What an algorithm is, and is not. Communications of the ACM, 56(6), 8–9.  10.1145/2461256.2461260. ISSN 0001-0782.CrossRefGoogle Scholar
  8. Hopcroft, J.E., & Ullman, J.D. (1979). Introduction to automata theory, languages, and computation. Philippines: Addison-Wesley Publishing Co. ISBN 0-201-02988-X.Google Scholar
  9. Kleene, S.C. (1967). Mathematical logic: Wiley. ISBN 0-471-49033-4.Google Scholar
  10. Knuth, D.E. (1997). The art of computer programming, volume 1 (3rd Ed.): fundamental algorithms. Redwood City: Addison Wesley Longman Publishing Co. Inc. ISBN 0-201-89683-4.Google Scholar
  11. Kreisel, G. (1967). Informal rigor and completeness proofs. In: Lakatos, I. (Ed.) Problems in the philosophy of mathematics, (Vol. 1. North-Holland Publishing Company, pp. 138–186).Google Scholar
  12. MacCormick, J. (2012). Nine algorithms that changed the world. Princeton: Princeton University Press.Google Scholar
  13. Markov, A.A., & Nagorny, N.M. (1988). The theory of algorithms. Mathematics and its applications. Netherlands: Springer. ISBN 9789027727732.Google Scholar
  14. Minsky, M.L. (1967). Computation: finite and infinite machines. Upper Saddle River: Prentice-Hall, Inc. ISBN 0-13-165563-9.Google Scholar
  15. Moschovakis, Y.N. (2002). On founding the theory of algorithms. Available online at
  16. Piccinini, G. (2007). Computing mechanisms. Philosophy of Science, 74(4), 501–526.CrossRefGoogle Scholar
  17. Rapaport, W.J. (2012). Semiotic systems, computers, and the mind: how cognition could be computing. International Journal of Signs and Semiotic Systems, 2(1), 32–71.CrossRefGoogle Scholar
  18. Rosser, B. (1939). An informal exposition of proofs of Gödel’s theorems and Church’s theorem. Journal of Symbolic Logic, 4, 53–60, 6. doi: 10.2307/2269059. ISSN 1943-5886. Scholar
  19. Sieg, W. (2008). Church without dogma. In: Benedikt Lwe Cooper, S.B., & Sorbi, A. (Eds.) New computational paradigms: changing conceptions of what is computable. Springer, New York; London.Google Scholar
  20. Turner, R. (2011). Specification. Minds and Machines, 21(2), 135–152.  10.1007/s11023-011-9239-x. ISSN 0924-6495.CrossRefGoogle Scholar
  21. Turner, R. (2013). The philosophy of computer science. In: Zalta, E.N. (Ed.) The Stanford encyclopedia of philosophy. Fall 2013 edition.Google Scholar
  22. Uspensky, V.A., & Semenov, A.L. (1981). What are the gains of the theory of algorithms. In: Ershov, A.P., & Knuth, D.E. (Eds.) Algorithms in modern mathematics and computer science, volume 122 of lecture notes in computer science. ISBN 978-3-540-11157-3. Springer, Berlin Heidelberg, (pp. 100–234), DOI  10.1007/3-540-11157-3_27, (to appear in print).
  23. Vardi, M. (2012). What is an algorithm? Communications of the ACM, 55(3). doi: 10.1145/2093548.2093549.
  24. Weizenbaum, J. (1966). Eliza—a computer program for the study of natural language communication between man and machine. Communications of the ACM, 9(1), 36–45. doi: 10.1145/365153.365168. ISSN 0001-0782.CrossRefGoogle Scholar
  25. Wikipedia (2013). Eliza—Wikipedia, the free encyclopedia. Accessed 28 Oct 2013.

Copyright information

© Springer Science+Business Media Dordrecht 2015

Authors and Affiliations

  1. 1.Department of PhilosophyUniversity of WyomingLaramieUSA

Personalised recommendations