Text this: Algorithms, languages, automata, and compilers : a practical approach