十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本篇內(nèi)容主要講解“go語言源碼是什么寫的”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“go語言源碼是什么寫的”吧!
創(chuàng)新互聯(lián)公司是一家專業(yè)提供伊寧企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站制作、H5場(chǎng)景定制、小程序制作等業(yè)務(wù)。10年已為伊寧眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
Go語言早期源碼是使用C語言和匯編語言寫成的,從Go 1.5版本后,完全使用Go語言自身進(jìn)行編寫。Google早在2014年初的時(shí)候,就已經(jīng)開始在籌備從Go語言的源碼中徹底移除C語言,也就是說讓Go語言真正完成自舉,用早期版本重寫了Go語言編譯器。
Go語言現(xiàn)在已經(jīng)實(shí)現(xiàn)了自舉,也就是說現(xiàn)在Golang是用Golang自己編寫的自己。早期Go是用匯編語言和C語言實(shí)現(xiàn)的,后來Go成熟了之后,Go語言就開始自舉、用早期版本重寫了Go語言編譯器。
Google逐步實(shí)現(xiàn)Go語言“去C語言化”
很多編程語言的核心都是C語言,甚至可以說現(xiàn)代計(jì)算機(jī)核心基礎(chǔ)都構(gòu)建在C語言和Unix之上,肯湯普森和丹尼斯里奇老爺子創(chuàng)造了C語言和Unix,然后C和Unix再生萬物。JVM、PHP核心、GCC、Emacs、Vim、Unix、Linux等等,這些全都是用C語言來寫的。
Go語言自然也不例外,Go語言編譯器最初也是C語言寫的,Go語言的作者之一就是大名鼎鼎的祖師爺肯湯普森。Google早在2014年初的時(shí)候,就已經(jīng)開始在籌備從Go語言的源碼中徹底移除C語言,也就是說讓Go語言真正完成自舉。
Google自舉Go語言的具體方案
Go語言是效率很高的編程語言,比Java、C#、PHP、Python這些基于虛擬機(jī)以及解釋性語言性能要好、資源使用效率也更高?;旧铣薈/C++之外,Go語言就是性能最好的高級(jí)語言,相對(duì)于C和C++、Go語言在語法上又有極大的優(yōu)勢(shì)。
Java和PHP都只能部分自舉,Java的JVM還是得用C語言實(shí)現(xiàn),PHP核心也得用C語言來寫,能夠?qū)崿F(xiàn)自舉的編程語言必須是圖靈完備的,因此HTML 、CSS也沒辦法完成自舉,他們也不是真正意義上的編程語言。
Google具體的實(shí)施步驟:開發(fā)一個(gè)C到Go的編譯器,將現(xiàn)有的C編譯器翻譯成Go語言;轉(zhuǎn)化編譯器源碼樹、得到一個(gè)Go語言編譯器;將C風(fēng)格明顯的Go編譯器轉(zhuǎn)化成徹底的Go語言風(fēng)格Go編譯器;對(duì)Go編譯器進(jìn)行優(yōu)化,主要是優(yōu)化處理器、內(nèi)存性能使用問題,加入并行機(jī)制、優(yōu)化消除冗余檢查和邊界檢查能力;用最新版go/parser和go/types替換編譯器前端。
Google為什么要讓Go語言實(shí)現(xiàn)自舉呢?
自舉意義主要有三點(diǎn):測(cè)試被自舉的編程語言;實(shí)現(xiàn)用更高級(jí)和抽象的編程語言來編寫編譯器;編程語言也能從語言本身的發(fā)展獲益。
能夠自舉證明至少編程語言是圖靈完備的,證明了編程語言本身具備這樣強(qiáng)大的能力,這本身也是對(duì)編程語言的一種宣傳,至少證明編程語言具備很強(qiáng)的通用能力、以及非常強(qiáng)的底層能力。在自舉過程中,本質(zhì)上也是對(duì)編程語言的一次考驗(yàn),核心開發(fā)者在這個(gè)過程中,可以積累很多編程語言本身的經(jīng)驗(yàn)教訓(xùn),能夠盡早發(fā)現(xiàn)編程語言本身存在的不足和設(shè)計(jì)缺陷,方便能夠及時(shí)做出調(diào)整和優(yōu)化。
因此編程語言想要自舉,這件事情做得越早越好,自舉的過程也是一次對(duì)編程語言的完善過程, 在編程語言定型之前越早完成自舉,編程語言就成熟得越早,C/C++之所以這么多年經(jīng)久不衰,就是因?yàn)樗麄儽旧碜銐虺墒?,其他編程語言要發(fā)展,都要靠這兩們編程語言,Go語言現(xiàn)在也具備這樣的可能。
Go語言是一個(gè)非常出色的編程語言,設(shè)計(jì)理念現(xiàn)代、能力又強(qiáng)、性能又好,盡管Go語言缺少宏、泛型會(huì)讓你的代碼重復(fù)度高,可是Go語言更多的是拋棄了C/C++的缺點(diǎn),吸收了很多編程語言的優(yōu)點(diǎn)發(fā)展起來的一個(gè)比較年輕的編程語言。Go語言的大量工程實(shí)踐證明,這是一門極其強(qiáng)大的編程語言。
到此,相信大家對(duì)“go語言源碼是什么寫的”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!