compilable code generation