Introduction to languages and the theory of computation - Martin, John C. (Tata McGraw-Hill publishing Company Limited, 2003)