Constructing and Optimizing a C Compiler in Rust