溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

golang自舉的優(yōu)勢有哪些

發(fā)布時間:2020-06-10 18:30:06 來源:億速云 閱讀:684 作者:鴿子 欄目:編程語言

Google公布了實現(xiàn)Go 1.5自舉(Bootstrap)的計劃。相關(guān)文檔的作者是Go核心開發(fā)者Russ Cox,他在Go語言上已經(jīng)耕耘了接近6年。據(jù)Russ介紹,Google就“如何從Go源碼樹中去除所有的C程序”已經(jīng)醞釀了一年。

自舉(Bootstrapping) 是這樣的過程,“用要編譯的目標編程語言編寫其編譯器(或匯編器)”。

一般而言,自舉有幾個優(yōu)勢,比如:

用于測試被自舉的語言;

支持使用通常更為高級、提供更多高級抽象的語言來編寫編譯器;

編譯器也可以得益于語言層面的任何改進。

如前所述,Google在之前就開始了從Go源碼樹中去除C代碼的努力,轉(zhuǎn)換計劃分為5個步驟:

第1階段——開發(fā)一個從C語言到Go語言的翻譯器,將現(xiàn)有的C編譯器翻譯成Go語言的。這一階段利用了一個事實:原來的編譯器沒有大量使用一些很難移植到Go語言的特性,比如宏、聯(lián)合和指針運算等。

第2階段——轉(zhuǎn)換編譯器的源碼樹,得到一個Go語言的編譯器,但是比較原始,而且是C風(fēng)格的。

第3階段——將前面得到的編譯器轉(zhuǎn)換為符合Go語言習(xí)慣的程序,主要通過識別包,添加文檔和單元測試實現(xiàn)。

第4階段——優(yōu)化編譯器,解決編譯器和CPU的內(nèi)存使用問題,可能引入并行化。

此外,嘗試在今天使用的不依賴架構(gòu)的無序樹(Node*s)和依賴架構(gòu)的有序列表(Prog*s)之間引入一個新的中間表示,目的是改進編譯器在消除冗余的nil檢查和邊界檢查等情況下的優(yōu)化

以上就是golang 是什么寫的的詳細內(nèi)容,更多請關(guān)注億速云其它相關(guān)文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI