Algebraic theory of machines, languages and semigroups (Academic Press, 1968)