Object-Oriented State Machines
Ted W. Faison
Finite state machines represent a conceptually simple way to handle disparate programming tasks, and indeed find their way into many different kinds of programs from grammar parsers to CD players.