重构Compiler