Introduction to automata theory, languages, and computation - Hopcroft, John E., 1939-; Motwani, Rajeev; Ullman, Jeffrey D., 1942- (Pearson/Addison Wesley, 2007)