自举(Bootstrapping)指用语言自身实现其解释器或编译器。成熟语言不一定能自举。
能自举的原因
- 设计闭环:验证语言完备性
- 生态便利:复用自身库
- 历史演进:成熟后用自身重写
不能自举的情况
| 原因 | 示例 |
|---|---|
| 性能优先 | Python(CPython 用 C) |
| 性能优先 | JavaScript(V8 用 C++) |
| 设计限制 | Shell(难以实现自身解释器) |
| 历史依赖 | Ruby(官方解释器用 C) |
总结
- C、Java、Go 等语言实现了自举
- Python、JavaScript、Shell 等成熟语言未以自举为主流实现
- 自举是设计完备性的体现,但非必需
张芷铭的个人博客
Comments