produces C code