An introduction to formal languages and automata - Linz, Peter (Jones and Bartlett, 1997)