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.
Buy single article
Instant access to the full article PDF.
Price includes VAT for USA
Subscribe to journal
Immediate online access to all issues from 2019. Subscription will auto renew annually.
This is the net price. Taxes to be calculated in checkout.
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.
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.”
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.
Cleland, C.E. (2001). Recipes, algorithms, programs. Minds and Machines, 11, 219–237.
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.
GameTable Online Inc. (2013). Rules: Checkers. Available online at https://www.gametableonline.com/pop_rules.php?gid=20.
Gardner, M. (1970). Mathematical games—the fantastic combinations of John Conway’s new solitaire game “Life”. Scientific American, 223, 120–123.
Gurevich, Y. (2000). Sequential abstract-state machines capture sequential algorithms. ACM Transactions on Computational Logic (TOCL), 1(1), 77–111.
Gurevich, Y. (2011). What is an algorithm? Available online at http://research.microsoft.com/en-us/um/people/gurevich/Opera/209.pdf.
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.
Hopcroft, J.E., & Ullman, J.D. (1979). Introduction to automata theory, languages, and computation. Philippines: Addison-Wesley Publishing Co. ISBN 0-201-02988-X.
Kleene, S.C. (1967). Mathematical logic: Wiley. ISBN 0-471-49033-4.
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.
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).
MacCormick, J. (2012). Nine algorithms that changed the world. Princeton: Princeton University Press.
Markov, A.A., & Nagorny, N.M. (1988). The theory of algorithms. Mathematics and its applications. Netherlands: Springer. ISBN 9789027727732.
Minsky, M.L. (1967). Computation: finite and infinite machines. Upper Saddle River: Prentice-Hall, Inc. ISBN 0-13-165563-9.
Moschovakis, Y.N. (2002). On founding the theory of algorithms. Available online at http://www.math.ucla.edu/ynm/papers/foundalg.pdf.
Piccinini, G. (2007). Computing mechanisms. Philosophy of Science, 74(4), 501–526.
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.
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.
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.
Turner, R. (2011). Specification. Minds and Machines, 21(2), 135–152. 10.1007/s11023-011-9239-x. ISSN 0924-6495.
Turner, R. (2013). The philosophy of computer science. In: Zalta, E.N. (Ed.) The Stanford encyclopedia of philosophy. Fall 2013 edition.
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).
Vardi, M. (2012). What is an algorithm? Communications of the ACM, 55(3). doi:10.1145/2093548.2093549.
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.
Wikipedia (2013). Eliza—Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/ELIZA. Accessed 28 Oct 2013.
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.
About this article
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
- Philosophy of computer science
- Church-Turing thesis
- Mathematical ontology