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

編譯器和編程語(yǔ)言的雞和蛋的問(wèn)題

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


相關(guān)文章

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

行業(yè)資訊

聯(lián)系我們

13387904606

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

手機(jī):13755589003
QQ:122322500
微信號(hào):13755589003

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

微信二維碼