Crafting a Compiler with C