Not logged in


At this point it is necessary to be a bit more precise about the terminology.

Model vs. Machine

Before we have used the terms state machine and state model somewhat interchangeably. Now we want to be more precise. We talk about a state model as the specification of states, events  and transitions and the we talk about a state machine as being a running instance of a state model. In essence the state model is the definition and the state machine is the instance each of which have their own notion of current state.

The moore package makes the same distinction. There is a command to define the state model and then an arbitrary number of state machines may be created from the state model. It is analogous to defining an object oriented class and then creating objects from the class.


The word event is also very overloaded in this context. We must distinguish between a state model event and a Tcl event. Usually when we say, event we mean state model event and use the term Tcl event when referring to Tcl's event capability which is used to implement state machine event delivery. It is also important to remember that events are generated to state machines. The state model determines how each instance state machine behaves and all state machines of a given state model behave the same (i.e. have the same states and respond to the same events. However, each state machine keeps track of its own state, independently of all other state machines.

Previous Next