還真有人對這個問題孜孜不倦:-)
既然我能設(shè)計編譯器绊诲,那我設(shè)計編譯器總不能直接用機器語言寫吧纷捞,那我寫編譯器的源代碼的編譯器在哪里呢痢缎?(怎么這么繞)
我是在下面的一個討論對這個問題感興趣的
http://stackoverflow.com/questions/18125490/how-was-the-first-c-compiler-written
里面對 大牛Dennis Ritchie寫c語言編譯器的歷史進行了相關(guān)闡述币呵,大概就是他原來對B語言不滿意,所以不停改進B語言突那,這個過程是不停迭代的挫酿,就是不停用舊一點的語言“自舉”新的編譯器。有一天誕生了NB語言愕难,大家就把從這個時間點開始說他創(chuàng)造了c語言早龟。他自己都不知道哪天算c語言誕生了:O
這只是C語言的歷史.其他語言比如Pascal語言其實是用 Fortran語言寫的編譯器惫霸。
關(guān)于自舉“Bootstrapping”,你可以在以下Wiki查到相關(guān)話題葱弟。
https://en.wikipedia.org/wiki/Bootstrapping_%28compilers%29