Codes and Automata by Dominique Perrin, Jean Berstel & Christophe Reutenauer