Writing a C Compiler