2016-01-11 78 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