学习写一个编译器
为什么?
有一个很好的比喻:不懂编译器写程序就好比没有学过人体解剖学就去画人像一样,能当让是能,但是核心上总有些不对的地方
每个成功的项目都有很多的语言构成,拿一个简单的 Python Web 项目来说,我们可能需要 Python、yml、jinja、ini 等等多种语言(不一定是完备的变成语言)。总有一天你对发现现有的语言并不能特别好得满足你的特定需求的时候,而这时候你就需要一个编译器了。
设计一门语言还是一个很好的联系
编译的步骤
- Scanning,也就是词法分析(Lexical Analysis)
- Parsing