通常情况下,用另一种语言从头开始重写代码库被认为是一种风险很大的举动,而且往往以失败告终。然而,对于编译器来说,情况正好相反:大多数成功的编译器(例如 Java、C++、C、C#、TypeScript、Scala、Go、Rust、Zig、OCaml、Haskell 等等)都经历过一次彻底的重写 ...