Introduction to languages and the theory of computation - Martin, John C (McGraw-Hill, 2011)