Introduction to automata theory, languages and computation - Hopcroft, John E. (Addison-Wesley series in computer science, 1979)