Understanding and Writing Compilers: A do-it-yourself guide (Macmillan Computer Science Series)