Explicit Knowledge Transfer for Weakly-Supervised Code Generation