Introduction to Languages and the Theory of Computation - John C. Martin (MC GrawHill, 2010)