Introduction to automata theory, Languages and computation - Hopcroft, John E (1990)