Source code generation