Introduction to languages and the theory of computation - Martin (McGraw-hill series in computers science, 1996)