从零写一个编译器,是计算机专业课程里最复杂的项目之一。它要求你同时理解词法、语法、中间代码、目标架构和性能优化——而且每一个环节的错误都会传导到后续阶段。
MiMo-V2.5-Pro 把这个项目从头到尾自己做完了,没有人类接管,没有中途崩溃,拿到了满分。
项目背景
北大 SysY 编译器课程要求用 C 语言实现一个完整的编译器,支持一个简化版的 C 语言子集(SysY),编译目标为 RISC-V 汇编。
这不是写一个脚本工具——你需要处理五个阶段的完整流水线:
- 词法分析:将源代码分解为 token 流
- 语法分析:构建抽象语法树(AST)
- 中间代码生成:从 AST 生成三地址码
- RISC-V 后端:将中间代码翻译为 RISC-V 汇编
- 性能优化:寄存器分配、指令调度、死代码消除
任何一个阶段的 bug 都会导致最终生成的汇编无法运行。而且五个阶段之间存在复杂的接口约定,需要全局理解。
MiMo-V2.5-Pro 的成绩
| 指标 | 值 |
|---|---|
| 用时 | 4.3 小时 |
| 工具调用次数 | 672 次 |
| 得分 | 233/233 满分 |
| 中断次数 | 0 |
| 人类接管 | 0 |
672 次工具调用意味着什么?如果每次调用平均需要几秒钟的推理和工具执行,那意味着模型在数小时的持续工作中,保持了决策的一致性和上下文的连贯性。
为什么这是一个重要的里程碑
大多数 Agent 模型在几十轮工具调用后就开始出问题——忘记之前的变量名、搞混函数签名、在模块之间引入不一致的接口约定。这是”上下文衰减”问题。
MiMo-V2.5-Pro 在 672 次调用中保持了 233/233 的满分,说明:
- 记忆能力:能在超长任务中维持早期决策的准确性
- 推理稳定性:不会因为任务长度而降低推理质量
- 接口一致性:五个阶段的接口约定完全正确,没有传导错误
这意味着它”自主完成人类专家数天甚至数周的高难度工作”这个宣称,至少在这个级别的工程任务上是成立的。
对比视角
编译器的编写通常需要一个学期的时间——学生从词法分析开始,逐步完成每个阶段,中间会遇到无数 bug 和调试。MiMo-V2.5-Pro 在 4.3 小时内完成,不是因为写得更快,而是因为它不需要”调试-修改-再调试”的循环——672 次调用中保持了足够高的准确率。
当然,这是一个标准化的课程项目,有明确的评分标准。但它验证了一个关键能力:长周期、多阶段、强依赖关系的工程任务,Agent 模型可以自主完成。