Introduction to Languages and The Theory of Computation - Martin (McGraw-Hill, 2011)