Introduction to automata theory, languages and computation - Hopcroft, John E. (Dorling Kindersley, 2009)