An Introduction To Formal Language And Automata by Peter Linz