Introduction to automata theory, languages and computation - Hopcroft, John E (Narosa, 1992)