真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語言的編譯器是用什么語言寫的?

go語言的編譯器是用什么語言寫的?相信大部分人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,話不多說,一起往下看吧。

創(chuàng)新新互聯(lián),憑借十多年的成都網(wǎng)站設(shè)計、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)經(jīng)驗,本著真心·誠心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計網(wǎng)站有上1000+案例。做網(wǎng)站建設(shè),選成都創(chuàng)新互聯(lián)。

看起來像是個“雞生蛋,蛋生雞”的問題,實際上不是的。                             

這個問題的關(guān)鍵在于理解,編譯器本身就是一個程序,它的功能就是把源代碼翻譯為計算機可執(zhí)行的程序。

對于 C/C++、Go、Rust 這樣的本地語言,它們編譯生成后的目標(biāo)程序就是目標(biāo)平臺的本地可執(zhí)行程序。比如你用這三種語言寫個 Hello World,在 Windows 平臺下用編譯的結(jié)果一定是一個 .exe 文件,這些 .exe 文件里面沒有包含任何源語言的信息。

Windows 運行它們的時候不知道,也不需要知道這些 .exe 文件編譯之前是用什么語言寫的,只需要把它們加載進內(nèi)存,一句一句地執(zhí)行指令就行了。

編譯器程序也是這個道理。

假如你發(fā)明了一種新的語言 CNifeLang,首先需要用一種現(xiàn)有的語言寫一個 CNifeLang 的編譯器,比如說就用 Golang 吧;

你用 Golang 寫了一個 CNifeLang 的編譯器,能成功地把任何合法的 CNifeLang 源代碼編譯為等價的目標(biāo)程序。

接著用 CNifeLang 寫一個程序,它與你用 Golang 寫的編譯器功能完全相同,用 Golang 實現(xiàn)的編譯器把這個程序編譯完成,你就得到了一個用 CNifeLang 實現(xiàn)的 CNifeLang 編譯器。

因為這個程序的功能與用 Golang 寫的編譯器完全相同,所以你完全可以用這個編譯器去編譯 CNifeLang,于是 CNifeLang 實現(xiàn)了 自舉。

如果題主學(xué)習(xí)了編譯原理這門課,就會發(fā)現(xiàn)編譯與編程語言是沒有關(guān)系的,它有一套完整而成熟的操作方法,你完全可以用任何一種圖靈完備的語言去寫任何一種形式語言的編譯器,而且有嚴格的數(shù)學(xué)方法證明你寫的編譯器是正確的。

我們常見的編程語言基本都實現(xiàn)了自舉,這是一種編程語言發(fā)展成熟的標(biāo)志之一。因為編譯器既是一個復(fù)雜的工程,也有一套成熟的評價體系,能寫出成熟可用、效率有保證的本語言編譯器,就能說明這種語言已經(jīng)能拿來用了。

以上就是go語言的編譯器的詳細內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊!


文章名稱:go語言的編譯器是用什么語言寫的?
瀏覽地址:http://weahome.cn/article/gijsdc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部