首頁 >後端開發 >Golang >golang 是什麼寫的

golang 是什麼寫的

(*-*)浩
(*-*)浩原創
2019-12-27 11:50:132871瀏覽

golang 是什麼寫的

Google公佈了實現Go 1.5自舉(Bootstrap)的計畫。相關文件的作者是Go核心開發者Russ Cox,他已經在Go語言上耕耘了接近6年。根據Russ介紹,Google就「如何從Go源碼樹中去除所有的C程式」已經醞釀了一年。   (建議學習:go

自舉(Bootstrapping) 是這樣的過程,「用要編譯的目標程式語言編寫其編譯器(或彙編器)」。

一般而言,自舉有幾個優勢,例如:

用於測試被自舉的語言;

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

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

如前所述,Google在之前就開始了從Go源碼樹中去除C程式碼的努力,轉換計畫分為5個步驟:

第1階段-開發一個從C語言到Go語言的翻譯器,將現有的C編譯器翻譯成Go語言的。這一階段利用了一個事實:原來的編譯器沒有大量使用一些很難移植到Go語言的特性,例如巨集、聯合和指標運算等。

第2階段-轉換編譯器的源碼樹,得到一個Go語言的編譯器,但是比較原始,而且是C風格的。

第3階段-將前面得到的編譯器轉換為符合Go語言習慣的程序,主要透過辨識包,加入文件和單元測試實作。

第4階段-最佳化編譯器,解決編譯器和CPU的記憶體使用問題,可能引入並行化。

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

以上是golang 是什麼寫的的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn