Introduction to languages and the theory of computation - John C. Martin (McGraw Hill, 1997)
sn,c.1-3/ws.c.4-5