Theory of Automata, Formal Languages and Computation