既然編譯器是一個軟體,那它是如何編譯自己的?

老師們講,編譯器是一種軟體,辣么誰來編譯它


請用「自舉」(bootstrap)關鍵字。顯然知友們經常對這個問題感到好奇:

有沒有能自我編譯的語言? - 編程語言

計算機編程語言必須能夠自舉嗎? - 計算機科學

編譯器的自舉原理是什麼? - 編譯原理

程序是通過編譯器編譯才能執行的,那麼編譯器又是怎麼通過編譯或者說怎麼執行自己本身的呢? - 程序

第一個 C 語言編譯器是用什麼語言編寫的? - 編程語言

C編譯器用什麼語言寫的? - C(編程語言)

C語言編譯器為什麼能夠用C語言編寫? - 編程語言

既然gcc是用c語言寫的,那麼我們是怎麼編譯gcc的? - 編譯器

Haskell的編譯器GHC是Haskell寫的嗎? - 編程語言

據說 Sun 自己提供的 Java 編譯器是用 Java 寫的,那麼,誰來編譯 Java 編譯器? - 編程

用 JavaScript 寫成的 JavaScript 解釋器,意義是什麼? - 編程語言

一個編程語言有可能自己解釋自己嘛? - 程序設計語言理論

計算機高級語言是用什麼編寫出來的? - 編程

編譯器是用什麼語言寫的? - 編程

寫程序需要編譯器,編譯器是程序,輸入輸出也需要驅動,驅動也是程序,那麼第一個在電子計算機運行的程序是怎麼產生的? - 編程


類似的問題還有linux的動態鏈接器linux.ld.so本身也是一個動態庫,那麼它的符號重定位和got解析是誰完成的呢?也是一個bootstrap的概念


一個語言成熟的標誌之一就是可以自舉。


推薦閱讀:

覺得自己程序寫得很差不敢寫了怎麼辦?
未來想從事Linux 後台開發,需要學習linux內核嗎?像讀內核源碼。還是學好linux網路編程,C,演算法。學習內核的意義有哪些呢?
c語言未來的前景(比如就業)是怎麼樣的?
C語言怎麼寫窗口化程序?
如何理性的評價各種編程語言的優劣?

TAG:Java | C編程語言 | 晶元集成電路 | 編譯器 |