Automata, Languages and Programming by Lars Arge