注意:这篇文章的原文是用智能手机写的,但是当我让Gemini修改时,写作风格几乎被完全重写了😢(原文的细微差别应该还保留着……!)
前言
看到从2025年底左右开始的AI模型(GPT-5.2 Codex, Gemini 3 Pro, Claude 4.5 Opus thinking等)的急剧性能提升,我突然想到: “如果是现在的AI,是不是可以从零知识开始写编译器,直到吐出原生exe?”
我自己关于编译器的实现知识止步于Brainfuck。 结果,编码工作100%交给了AI(我一行代码都没写),用Rust实现了约1万行代码,完成了一个不仅能运行FizzBuzz,还能运行动态数组和结构体的语言。
成果物放在了GitHub上。 https://github.com/takoyakisoft/quad-tri/
语言概念:Quad 和 Tri
以“提高人类的可视性,同时维持AI的Token效率”为概念,设计了以下两种语言。
- Quad: 关键字(保留字)全部统一为4个字符
- Tri: 关键字全部统一为3个字符
编译器通过扩展名进行区分。
目标是“对人类的可视性”+“Token效率”
最大的概念是“纵向线条整齐”。 由于保留字的长度固定,写代码时语句的开始位置自然会纵向对齐,对人类来说非常容易阅读。
此外,采用的关键字是从包含空格在内确实可以用1个Token表示的常见英语单词中选出的。 就像Python等现有语言一样,不会被Tokenizer分割,因此对AI来说也能维持生成成本(Token效率)良好的状态。
示例代码
Quad (4字符限制)
选择了func, cell (var), loop, back (return) 等4个字母的英语单词。请注意纵向线条整齐排列。
|
|
Tri (3字符限制)
def, var, for, ret (return), iff/elf/els 等。
|
|
技术栈与Cranelift的采用
编译器的后端采用了Cranelift。
- 语言: Rust
- 后端: Cranelift
- 开发环境: Github Actions, Windows 11, Codex Web/Jules
最初考虑过LLVM,但因为跨平台和开发环境(Windows/Web/CI)的设置似乎太复杂而放弃了。 Cranelift仅靠Rust的Crate(库)就能完成,而且能输出原生exe,所以最适合这次“2天爆速开发”的宗旨。只需要传递IR(中间表示)就能快速运行。
已实现的功能
与AI反复壁球(名义上是壁球,实际上完全是下达指令)的结果,实现了以下功能。
- 原生exe输出 (Windows/Linux)
- 变量、函数、循环、条件分支
- 动态数组、结构体
- 接收者函数
- Result / Option 类型
- 内存的分配和释放(这里还有Bug)
老实说,没想到只知道Brainfuck的人,能在2天内做出拥有接收者函数和结构体的语言。“重新发明轮子”因为输入输出明确,或许是AI最擅长的任务。
辛苦的地方・AI的评价
只有固定长度数组的记法,即使这AI讨论也没得出好主意,变成了稍微独特的记法。
|
|
另外,让AI自己审查生成的代码时,收到了“错误处理很杂乱”“可靠性低”等辛辣的评论。确实感觉到了虽然能动但不是生产级代码这一AI编码特有的障碍。
结语
虽然动机是“做一个段子语言”,但实际exe运行的时候还是很感动的。 虽然编码是100%交给AI,但决定概念和规格的乐趣牢牢地留在了人类这边。 这是一个让我切身感受到,2026年编程已经完全从“写”转变为“讲述规格并生成”的周末。