2016-01-11 53 views
1

94%的Rust编译器是在Rust中编写的。所以我不明白怎么可能?因为编译rustc你已经必须有一些锈蚀编译器。有人可以解释它是如何工作的,以及编译器是如何创建的?什么语言被用来编写Rust编译器?

+0

https://en.wikipedia.org/wiki/Bootstrapping_%28compilers%29#The_chicken_and_egg_problem –

+2

这在现有问题中有很好的解释:http://stackoverflow.com/questions/193560/writing-a-compiler-使用它自己的语言 – voithos

回答

1

简而言之,一旦你有一个编译代码的编译器,你可以用它来开发和编译一个新的编译器。新的编译器可以“理解”它设计用于编译的任何语言。

因此,假设有一些基于C++的编译器除锈,防锈代码的开发,编译成一个生锈的编译器,一旦你建立你有一个基于除锈防锈编译器。

+1

我知道你只是做了一个假设的情况,但最初的'Rust'编译器是用'OCaml'而不是'C++'编写的。 https://en.wikipedia.org/wiki/Rust_(programming_language) – Akavall