The theory of parsing, translation, and compiling. 2: Compiling