Introduction to languages and the theory of computation - John C Martin (Tata Mcgraw Hill, 2003)