Semigroups, algorithms, automata, and languages : (World Scientific, 2002)