當前位置:聯(lián)升科技 > 技術(shù)資訊 > 開發(fā)技術(shù) >

編譯器和編程語言的雞和蛋的問題

2020-10-26    作者:夢回故里歸來    來源:今日頭條    閱讀:
對于哲學問題先有雞還是先有蛋一直是人們爭論的焦點,但是從語言學定義來說,沒有雞如何定義雞蛋,然而不管是先有雞蛋還是先有雞,因為它們的循環(huán)依賴,導致了彼此的共生。
對于軟件行業(yè)來說,編程語言和編譯器就很類似雞和雞蛋的關(guān)系。
用編程語言寫出了編譯器,反過來用編譯器對編程語言進行了編譯。
表面上來看,編譯器和編程語言是彼此依賴的,但是更高層面上來講它們是不斷進化的。一開始的編程語言不完善,寫出的編譯器也是不完整的,然后我們用不完整的編譯器編譯了編程語言,讓它逐漸變得完整,同時我們又用變得完整的編程語言,寫出了更加完整的編譯器。
究竟誰是最先產(chǎn)生的?
對于這個問題,一定是現(xiàn)有的編程語言,因為最早的編程語言我們可以認為它們不需要編譯,因為它們可以直接來操作硬件,所以應(yīng)該是先有A編程語言,然后用A編程語言編寫了一個編譯器,這個編譯器可以編譯B語言,然后B編程語言可以自己編寫出自己的編譯器來編譯自己。
自舉
一個人再有力氣也無法給自己舉起來,但是在軟件編程里面,編譯語言卻可以用自己編寫的編譯器編譯自己,這就叫做自舉。
完成自舉的過程。
用X語言把那個Y語言編譯器寫出來。
用Y語言把編譯器編寫出來,用上面的編譯器進行編譯。
Y編譯出來的編譯器對Y進行編譯,得到新的編譯器。
新的編譯器進行用例測試,沒問題的話,用Y語言寫的新的編譯器就可以對Y語言編譯,實現(xiàn)編譯器自舉。
現(xiàn)實中的例子
做一個打鐵工具,然后用這個打鐵工具又可以做出打鐵工具。
用編程語言寫出編輯器,反過來再用編輯器去寫編程語言。
有錢了去投資,投資之后有了錢再去投資。
總結(jié)
編譯器本身是一種將一種語言翻譯成另一種語言的工具,至于它本身是如何編寫的,我們其實并不太關(guān)心,只要它可以準確快速地幫我們完成翻譯的工作就可以了。
先有雞還是先有蛋并不重要,重要的是我們既可以吃雞,又可以吃雞蛋。


相關(guān)文章

我們很樂意傾聽您的聲音!
即刻與我們?nèi)〉寐?lián)絡(luò)
成為日后肩并肩合作的伙伴。

行業(yè)資訊

聯(lián)系我們

13387904606

地址:新余市仙女湖區(qū)仙女湖大道萬商紅A2棟

手機:13755589003
QQ:122322500
微信號:13755589003

江西新余網(wǎng)站設(shè)計_小程序制作_OA系統(tǒng)開發(fā)_企業(yè)ERP管理系統(tǒng)_app開發(fā)-新余聯(lián)升網(wǎng)絡(luò)科技有限公司 贛ICP備19013599號-1   贛公網(wǎng)安備 36050202000267號   

微信二維碼