Nondeterminism is a concept that appears in many areas of computer science such as automata theory, algorithms, and concurrency. It is a difficult concept to learn because we intuitively think of computers as carrying out instructions in a step-by-step deterministic fashion. This is apparent when one considers the cliché that compares an algorithm to a cooking recipe; one hardly expects a recipe to include instructions like “chop the onions finely or coarsely” or “heat the oven to 180 or 220 degrees”!
In this chapter we stray somewhat from our introduction to SPIN as a model checker in order to show how SPIN can be used to facilitate learning about nondeterminism. SPIN is an excellent tool for this purpose, both because of the nondeterministic constructs in the PROMELA language and because of the nondeterministic nature of simulations. Furthermore, SPIN itself is based upon the theory of automata, as we discuss in Chapter 10.
KeywordsModel Checker Propositional Calculus Simulation Mode Input String Process Block
Unable to display preview. Download preview PDF.