What an Algorithm Is

Abstract

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.

This is a preview of subscription content, log in to check access.

Notes

  1. 1.

    I am indebted to Ksenia Tatarchenko, who introduced me to the work of the 1979 symposium Algorithms in Modern Mathematics and Computer Science in her talk at the 2014 conference of the International Association for Computing and Philosophy.

  2. 2.

    In my earlier letter to the editor (Hill 2013), I offered a definition that said “expressed in a finite, imperative form.” This has turned out to be misleading; the expression is independent of the algorithm, as is discussed in Section 5.5. The letter also used the term “deterministic” rather than “effective.”

  3. 3.

    Note that although Cleland uses the word “order” a few lines later as a noun to mean “correct sequence,” she seems to be using “order” in this passage to mean “command,” referring to the imperative.

References

  1. Cleland, C.E. (2001). Recipes, algorithms, programs. Minds and Machines, 11, 219–237.

    Article  Google 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.

    Article  Google Scholar 

  3. GameTable Online Inc. (2013). Rules: Checkers. Available online at https://www.gametableonline.com/pop_rules.php?gid=20.

  4. Gardner, M. (1970). Mathematical games—the fantastic combinations of John Conway’s new solitaire game “Life”. Scientific American, 223, 120–123.

    Article  Google Scholar 

  5. Gurevich, Y. (2000). Sequential abstract-state machines capture sequential algorithms. ACM Transactions on Computational Logic (TOCL), 1(1), 77–111.

    Article  Google Scholar 

  6. Gurevich, Y. (2011). What is an algorithm? Available online at http://research.microsoft.com/en-us/um/people/gurevich/Opera/209.pdf.

  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.

    Article  Google 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.

  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).

  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 http://www.math.ucla.edu/ynm/papers/foundalg.pdf.

  16. Piccinini, G. (2007). Computing mechanisms. Philosophy of Science, 74(4), 501–526.

    Article  Google 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.

    Article  Google 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. http://journals.cambridge.org/article_S0022481200035349.

    Article  Google 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.

  20. Turner, R. (2011). Specification. Minds and Machines, 21(2), 135–152. 10.1007/s11023-011-9239-x. ISSN 0924-6495.

    Article  Google Scholar 

  21. Turner, R. (2013). The philosophy of computer science. In: Zalta, E.N. (Ed.) The Stanford encyclopedia of philosophy. Fall 2013 edition.

  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.

    Article  Google Scholar 

  25. Wikipedia (2013). Eliza—Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/ELIZA. Accessed 28 Oct 2013.

Download references

Acknowledgments

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.

Author information

Affiliations

Authors

Corresponding author

Correspondence to Robin K. Hill.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Hill, R.K. What an Algorithm Is. Philos. Technol. 29, 35–59 (2016). https://doi.org/10.1007/s13347-014-0184-5

Download citation

Keywords

  • Algorithm
  • Philosophy of computer science
  • Church-Turing thesis
  • Mathematical ontology