Abstract
Nondeterminism is a fundamental concept in computer science that appears in various contexts such as automata theory, algorithms and concurrent computation. We present a taxonomy of the different ways that nondeterminism can be defined and used; the categories of the taxonomy are domain, nature, implementation, consistency, execution and semantics. An historical survey shows how the concept was developed from its inception by Rabin & Scott, Floyd and Dijkstra, as well the interplay between nondeterminism and concurrency. Computer science textbooks and pedagogical software are surveyed to determine how they present the concept; the results show that the treatment of nondeterminism is generally fragmentary and unsystematic. We conclude that the teaching of nondeterminism must be integrated through the computer science curriculum so that students learn to see nondeterminism both in terms of abstract mathematical entities and in terms of machines whose execution is unpredictable.
- Abrial, J.R. (1996). The B Book: Assigning Programs to Meanings. Cambridge, UK: Cambridge University Press. Google ScholarDigital Library
- Armoni, M. & Gal-Ezer, J. (2006). Introducing non-determinism. Journal of Computing in Mathematics and Science Teaching 25(4), 325--359.Google Scholar
- Armoni, M. & Gal-Ezer, J. (2007). Non-determinism -- an abstract concept in computer science studies. Computer Science Education, 17(4) 243--262.Google ScholarCross Ref
- Armoni, M., Lewenstein, N., & Ben-Ari, M. (2008). Teaching students to think nondeterministicaly. In Dougherty, J.D., Rodger, S., Fitzgerald, S., & Guzdial, M. (Eds.), Proceedings of the 39 th SIGCSE Technical Symposium on Computer Science Education (Portland, OR, March 12 - 15, 2008). New York: ACM Press, 4--8. Google ScholarDigital Library
- Back, R.J.R. (1980). Semantics of unbounded nondeterminism. In de Bakker, J.W. & van Leeuwen, J. (Eds.), Proceedings of the 7th Colloquium on Automata, Languages and Programming, and in Goos, G. and Hartmanis, J. (Eds.), Lecture Notes in Computer Science 85, 51--63. Google ScholarDigital Library
- Back, R.J.R. (1981a). On correct refinement of programs. Journal of Computer and System Sciences 23(1), 49--68.Google ScholarCross Ref
- Back, R.J.R. (1981b). Proving total correctness of nondeterministic programs in infinitary logic. Acta Informatica 15(3), 233--249.Google ScholarDigital Library
- Back, R.J.R. (1983). A continuous semantics for unbounded nondeterminism. Theoretical Computer Science 23, 187--210.Google ScholarCross Ref
- Back, R.J.R. (1989a). A method for refining atomicity in parallel algorithms. In Odijk, E., Rem, M. & Syre, J.-C. (Eds.), Proceedings of PARLE '89, Parallel Architectures and Languages, Europe, the 22nd Annual Hawaii International conference on System Sciences, and in Goos, G. and Hartmanis, J. (Eds.), Lecture Notes in Computer Science 366, 231--242. Google ScholarDigital Library
- Back, R.J.R. (1989b). Changing data representations in the refinement calculus. In Shriver, B.D. (Ed.), Proceedings of the 22nd Annual Hawaii International conference on System Sciences, Washington, DC: IEEE Computer Society Press, 231--242.Google Scholar
- Back, R.J.R. & von Wright, J. (1989). Refinement calculus, part I: sequential nondeterministic programs. In de Bakker, J. W., de Roever, W.-P. & Rozenberg, G. (Eds.), Stepwise Refinement of Distributed Systems, Models, Formalisms, Correctness, REX Workshop, and in Goos, G. and Hartmanis, J. (Eds.), Lecture Notes in Computer Science 430, 42--66. Google ScholarDigital Library
- de Bakker, J.W. (1976). Semantics and termination of nondeterministic recursive programs. In Michaelson, S. & Milner, R. (Eds.), Proceedings of the 3rd Colloquium on Automata, Languages and Programming, Edinburgh, Scotland: Edinburgh University Press, 435--477.Google Scholar
- Behm, P., Benoit, P., Faivre, A., & Meynadier, J. (1999). Méétéor: A successful application of B in a large project. In Wing, J.M., Woodcock, J. & Davies, J. (Eds.). Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems-Volume I (September 20-24, 1999). Lecture Notes In Computer Science 1708, 369--387. Google ScholarDigital Library
- Ben-Ari, M. (2006). Principles of Concurrent and Distributed Programming (Second Edition). London: UK, Addison-Wesley. Google ScholarDigital Library
- Ben-Ari, M. (2008). Principles of Spin. London, UK: Springer.Google Scholar
- Ben-David Kolikant, Y. (2004a). Learning concurrency: Evolution of students' understanding of synchronization. International Journal of Human Computers Studies 60(2), 243--268. Google ScholarDigital Library
- Ben-David Kolikant, Y. (2004b). Learning concurrency as an entry point to the community of CS practitioners. Journal of Computers in Mathematics and Science Teaching 23(1), 21--46.Google Scholar
- Broy, M. (1986). A theory for nondeterminism, parallelism, communication, and concurrency. Theoretical Computer Science, 45(1), 1--61. Google ScholarDigital Library
- Broy, M., Gnatz, R., & Wirsing, M. (1978). Semantics of nondeterministic and noncontinuous constructs. Lecture Notes in Computer Science 69, 553--592.Google ScholarCross Ref
- Chomsky, N. (1962). Context-Free Grammars and Pushdown Storage. RLE Quarterly Progress Report 65, MIT Research Laboratory in Electronics, 187--194.Google Scholar
- Chomsky, N. & Schüützenberger, M.P. (1963). The algebraic theory of context-free languages. In Braffort, P. & Hirchberg, D. (Eds.), Computer Programming and Formal Systems, Amsterdam: North-Holland, 118--161.Google Scholar
- Cook, S.A. (1971). The complexity of theorem-proving procedures. In Proceedings of the Third Annual ACM Symposium on Theory of Computing (Shaker Heights, OH, May 03 - 05, 1971). STOC '71. New York: ACM Press, 151--158. Google ScholarDigital Library
- Cormen, T.H., Leiserson, C.E., Rivest, R.L., & Stein, C. (2001). Introduction to Algorithms, Second Edition. Cambridge, MA: MIT Press and Boston, MA: McGraw-Hill. Google ScholarDigital Library
- Davis, M. (1958). Computability & Unsolvability. New-York: McGraw-Hill.Google Scholar
- Davis, M.D., Sigal, R., & Weyuker, E.J. (1994). Computability, Complexity, and Languages, Fundamentals of Theoretical Computer Science (Second Edition). San-Diego, CA: Academic Press. Google ScholarDigital Library
- Dijkstra, E.W. (1968). Cooperating sequential processes, in F. Genuys (Ed.) Programming Languages, New York: Academic Press.Google Scholar
- Dijkstra, E.W. (1975). Guarded commands, nondeterminacy and formal derivation of programs. Communications of the ACM 18(8), 453--457 (EWD472). Google ScholarDigital Library
- Dijkstra, E.W. (1976). A Discipline of Programming. Englewood Cliffs, NJ: Prentice-Hall. Google ScholarDigital Library
- Dijkstra, E.W. (1980). A programmer's early memories. In Metropolis, N., Howlett, J. & Rota, G. (Eds.), A History of Computing in the Twentieth Century: a Collection of Essays, New York: Academic Press, 563--573.Google Scholar
- Fischer, P.C. (1965). Multi-tape and infinite-state automata -- a survey. Communications of the ACM 8(12), 799--805. Google ScholarDigital Library
- Floyd, R.W. (1967). Nondeterminstic algorithms. Journal of the ACM 14(4), 114--125. Google ScholarDigital Library
- Frances, N., Hoare, C.A.R., Lehmann, D.J., & de Roever, W.P. (1979). Semantics of nondeterminism, concurrency, and communication. Journal of Computer and System Sciences 19, 290--308.Google ScholarCross Ref
- Gallier, J.H. (1981a). Nondeterministic flowchart programs with recursive procedures: semantics and correctness I. Theoretical Computer Science 13(2), 239--270.Google ScholarCross Ref
- Gallier, J.H. (1981b). Nondeterministic flowchart programs with recursive procedures: semantics and correctness II. Theoretical Computer Science 13(3), 193--223.Google ScholarCross Ref
- Grinder, M.T. (2002). Animating automata -- a cross-platform program for teaching finite automata. SIGSCE Bulletin 34(1), 63--67. Google ScholarDigital Library
- Harel, D. (1981). On the total correctness of nondeterministic programs. Theoretical Computer Science 13(2), 175--192.Google ScholarCross Ref
- Harel, D. (1987). Algorithmics: The Spirit of Computing. Reading, MA: Addison-Wesley. Google ScholarDigital Library
- Harel, D. & Pratt, V.R. (1978). Nondeterminism in logics of programs. In Proceedings of the 5th Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, (Tucson, Arizona, January 23 - 25, 1978). POPL '78. New York: ACM Press, 203--213. Google ScholarDigital Library
- Hoare, C.A.R. (1969). An axiomatic basis for computer programming. Communications of the ACM 12(10), 576--583. Google ScholarDigital Library
- Hoare, C.A.R. (1978a). Communicating sequential processes. Communications of the ACM 21(8), 666--677. Google ScholarDigital Library
- Hoare, C.A.R. (1978b). Some properties of predicate transformers. Journal of the ACM 25(3), 461--480. Google ScholarDigital Library
- Hoare, C.A.R. (1985/2004). Communicating Sequential Processes. Hemel Hempstead, UK: Prentice Hall International. http://usingcsp.com/cspbook.pdf (accessed 6 March 2007).Google Scholar
- Holzmann, G.J. (2004). The Spin Model Checker: Primer and Reference Manual. Boston, MA: Addison-Wesley. Google ScholarDigital Library
- Hopcroft, J.E., Motwani, R., & Ullman, J.D. (2007). Introduction to Automata Theory, Languages and Computation (Third Edition). Boston, MA: Addison-Wesley. Google ScholarDigital Library
- Hopcroft, J.E. & Ullman, J.D. (1969). Formal Languages and their Relation to Automata. Reading, MA: Addison-Wesley. Google ScholarDigital Library
- Hopcroft, J.E. & Ullman, J.D. (1979). Introduction to Automata Theory, Languages and Computation. Reading, MA: Addison-Wesley. Google ScholarDigital Library
- IEEE Computer Society/ACM (2001). Computing Curricula 2001: Computer Science-Final Report. http://www.sigcse.org/cc2001/ (accessed 1 March 2007).Google Scholar
- INMOS (1988). Occam 2 Reference Manual, Hemel Hempstead, UK: Prentice Hall International.Google Scholar
- Jones, C.B. (2003). The early search for tractable ways of reasoning about programs. IEEE Annals of the History of Computing 25(2), 26--49. Google ScholarDigital Library
- Kennaway, J.R. & Hoare, C.A. R., (1980). A theory of nondeterminism. In Proceedings of the 7th Colloquium on Automata, Languages and Programming, Lecture Notes in Computer Science 85, 338--350. Google ScholarDigital Library
- Kleinberg, J. & Tardos, ÉÉ. (2006). Algorithm Design. Boston, MA: Addison-Wesley. Google ScholarDigital Library
- Kuroda, S.-Y. (1964). Classes of languages and linear bounded automata. Information and Control 7(2), 207--223.Google ScholarCross Ref
- Lamport, L. (1974). A new solution of Dijkstra's concurrent programming problem. Communications of the ACM 17(8), 453--455. Google ScholarDigital Library
- Lamport, L. (1980). "Sometime" is sometimes "not never": On the temporal logic of programs. In Proceedings of the 7th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (Las Vegas, NV, January 28 - 30, 1980). POPL '80. New York: ACM Press, 174--185. Google ScholarDigital Library
- Lamport, L. (1986a). The mutual exclusion problem: Part I--a theory of interprocess communication. Journal of the ACM 33(2): 313--326. Google ScholarDigital Library
- Lamport, L. (1986b) The mutual exclusion problem: Part II--statement and solutions. Journal of the ACM 33(2): 327--348. Google ScholarDigital Library
- Lewis, H.R. & Papadimitriou, C.H. (1981). Elements of the Theory of Computation. Englewood Cliffs: NJ: Prentice-Hall. Google ScholarDigital Library
- Manna, Z. (1970a). Second-order mathematical theory of computation. In Proceedings of the Second Annual ACM Symposium on Theory of Computing (Northampton, MA, May 4-6, 1970). STOC '70. New York: ACM Press, 158--168. Google ScholarDigital Library
- Manna, Z. (1970b). The correctness of nondeterministic programs, Artificial Intelligence 1, 1--26.Google ScholarDigital Library
- McCarthy, J. (1963). A basis for a mathematical theory of computations. In Braffort, P. & Hircshberg, D. (Eds.), Computer Programming and Formal Systems, Amsterdam: North-Holland, 33--70.Google Scholar
- Milne, G. & Milner R. (1979). Concurrent processes and their syntax. Journal of the ACM 26(2), 302--321. Google ScholarDigital Library
- Minsky, M.L. (1967). Computation: Finite and Infinite Machines. Englewood Cliffs, NJ: Prentice-Hall. Google ScholarDigital Library
- Morgan, C. (1988). The specification statement. ACM Transactions on Programming Languages and Systems 10(3), 403--419. Google ScholarDigital Library
- Morris, J.M. (1987). A theoretical basis for stepwise refinement and the programming calculus. Science of Computer Programming 9(3), 287--306. Google ScholarDigital Library
- Nelson, R.J. (1965). Invited papers--1: Basic concepts of automata theory. In Winner, L. (Ed.), Proceedings of the 1965 20th National Conference (Cleveland, OH, August 24-26, 1965). New York: ACM Press, 138--161. Google ScholarDigital Library
- Patterson, D.A. (2006). Computer science education in the 21 st century. Communications of the ACM 49(3), 27--30. Google ScholarDigital Library
- Plotkin, G.D. (1976). A powerdomain construction, SIAM Journal on Computing 5(3), 452--487.Google ScholarCross Ref
- Rabin, M.O. & Scott, D. (1959). Finite automata and their decision problems. IBM Journal of Research and Development 3(2), 636--644.Google ScholarDigital Library
- de Roever, W.P. (1976). Dijkstra's predicate transformers, non-determinism, recursion and termination. Proceedings of the Conference on Mathematical Foundations of Computer Science, Lecture Notes in Computer Science 45, 472--481.Google Scholar
- Rodger, S.H. & Finley, T.W. (2006) JFLAP: An Interactive Formal Languages and Automata Package. Sudbuy, MA: Jones and Bartlett. Ross, P.E. (2005). The Exterminators. IEEE Spectrum 42(9), 36--41.Google Scholar
- Savitch, W.J. (1969). Deterministic simulation of non-deterministic Turing machines (Detailed Abstract). In Proceedings of the First Annual ACM Symposium on Theory of Computing (Marina del Rey, CA, May 5-7, 1969). STOC '69. New York: ACM Press, 247--248. Google ScholarDigital Library
- Schützenberger, M.P. (1963). On context-free languages and pushdown automata. Information and Control 6, 246--264.Google ScholarCross Ref
- Sipser, M. (1997). Introduction to the Theory of Computation. Boston, MA: PWS Publishing. Google ScholarDigital Library
- Spivey, J.M. (1992). The Z Notation: A Reference Manual, 2nd edition. Hemel Hempstead, UK: Prentice Hall International. Google ScholarDigital Library
- Tucker, A.B., Barnes, B.H., Aiken, R.M., Barker, K., Bruce, K.B., Cain, J.T., Conry, S.E., Engel, G.L., Epstein, R.G., Lidtke, D.K., Mulder, M.C., Rogers, J.B., Spafford, E.H., & Turner, A.J. (1991). Computing Curricula '91. Association for Computing Machinery and the Computer Society of the Institute of Electrical and Electronics Engineers.Google Scholar
- Warwick, W. (2001). The Conceptual Development of Nondeterminism in Theoretical Computer Science. Unpublished Ph.D. thesis, Indiana University.Google Scholar
- Walicki, M. & Meldal, S. (1997). Algebraic approaches to nondeterminism: An overview, ACM Computing Surveys 29(1), 30--81. Google ScholarDigital Library
- White, T.M. & Way, T.P. (2006). JFast: A Java finite automata simulator. In Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education, SIGSCE Bulletin 38(1), 384--388. Google ScholarDigital Library
Index Terms
- The concept of nondeterminism: its development and implications for teaching
Recommendations
Generalized acceptance, succinctness and supernondeterministic finite automata
Implementation and application automataWe define generalized, acceptance in nondeterministic finite automata, in order to achieve more instances of succinct descriptions of regular languages in practical applications. We show that generalized acceptance enable the construction of a hierarchy ...
Determinism vs. nondeterminism for two-way automata: representing the meaning of states by logical formulæ
DLT'12: Proceedings of the 16th international conference on Developments in Language TheoryThe question whether nondeterminism is more powerful than determinism for two-way automata is one of the most famous old open problems on the border between formal language theory and automata theory. An exponential gap between the number of states of ...
Nondeterminism versus determinism for two-way finite automata: generalizations of Sipser's separation
ICALP'03: Proceedings of the 30th international conference on Automata, languages and programmingWhether there exists an exponential gap between the size of a minimal deterministic two-way automaton and the size of a minimal nondeterministic two-way automaton for a specific regular language is a long standing open problem and surely one of the most ...
Comments