Automata, languages, and programming (Springer-Verlag, 2014)