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.


Model Checker Propositional Calculus Simulation Mode Input String Process Block 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag London Limited 2008

Personalised recommendations