Google公布了實(shí)現(xiàn)Go 1.5自舉(Bootstrap)的計(jì)劃。相關(guān)文檔的作者是Go核心開(kāi)發(fā)者Russ Cox,他在Go語(yǔ)言上已經(jīng)耕耘了接近6年。據(jù)Russ介紹,Google就“如何從Go源碼樹(shù)中去除所有的C程序”已經(jīng)醞釀了一年。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),汨羅企業(yè)網(wǎng)站建設(shè),汨羅品牌網(wǎng)站建設(shè),網(wǎng)站定制,汨羅網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,汨羅網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
自舉(Bootstrapping) 是這樣的過(guò)程,“用要編譯的目標(biāo)編程語(yǔ)言編寫(xiě)其編譯器(或匯編器)”。
一般而言,自舉有幾個(gè)優(yōu)勢(shì),比如:
用于測(cè)試被自舉的語(yǔ)言;
支持使用通常更為高級(jí)、提供更多高級(jí)抽象的語(yǔ)言來(lái)編寫(xiě)編譯器;
編譯器也可以得益于語(yǔ)言層面的任何改進(jìn)。
如前所述,Google在之前就開(kāi)始了從Go源碼樹(shù)中去除C代碼的努力,轉(zhuǎn)換計(jì)劃分為5個(gè)步驟:
第1階段——開(kāi)發(fā)一個(gè)從C語(yǔ)言到Go語(yǔ)言的翻譯器,將現(xiàn)有的C編譯器翻譯成Go語(yǔ)言的。這一階段利用了一個(gè)事實(shí):原來(lái)的編譯器沒(méi)有大量使用一些很難移植到Go語(yǔ)言的特性,比如宏、聯(lián)合和指針運(yùn)算等。
第2階段——轉(zhuǎn)換編譯器的源碼樹(shù),得到一個(gè)Go語(yǔ)言的編譯器,但是比較原始,而且是C風(fēng)格的。
第3階段——將前面得到的編譯器轉(zhuǎn)換為符合Go語(yǔ)言習(xí)慣的程序,主要通過(guò)識(shí)別包,添加文檔和單元測(cè)試實(shí)現(xiàn)。
第4階段——優(yōu)化編譯器,解決編譯器和CPU的內(nèi)存使用問(wèn)題,可能引入并行化。
此外,嘗試在今天使用的不依賴(lài)架構(gòu)的無(wú)序樹(shù)(Node*s)和依賴(lài)架構(gòu)的有序列表(Prog*s)之間引入一個(gè)新的中間表示,目的是改進(jìn)編譯器在消除冗余的nil檢查和邊界檢查等情況下的優(yōu)化
以上就是golang 是什么寫(xiě)的的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!