A Programmer's View of Automata
The purpose of this discussion is to introduce the Computer Scientist to the concepts, definitions, notation and ideas of finite automata theory and to suggest how these ideas might relate to some of the other fields of Computer Science. Many of the ideas presented will be familiar to computer programmers, although they might not be immediately recognizable, for it is the precise nature of mathematics that renders these concepts tractable to investigation. Since understanding of the basic concepts is the purpose of this discussion, more emphasis will be placed on definitions and examples than on theorems and proofs. The principal benefit of the study of finite automata to the computer programmer is not in theories and theorems, but is rather in the insight and understanding it can contribute to many programming problems; specifically, in determining the underlying structure of the problem and in establishing how this structure is modified as the computation progresses.