Golang(又稱Go語言)是Google開發(fā)的一種靜態(tài)強(qiáng)類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語言。語法與 C 相近,但功能上有:內(nèi)存安全,GC(垃圾回收),結(jié)構(gòu)形態(tài)及 CSP-style 并發(fā)計算。
golang底層是c語言嗎?
最早的時候,Golang是用的C語言和匯編實現(xiàn)的。
后面Golang實現(xiàn)了自舉,重寫了編譯器,所以現(xiàn)在是用的Golang本身實現(xiàn)的。
假如你發(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)了 自舉。
—–節(jié)選自知乎,作者:CNife
拓展:
golang(go)是一種過程編程語言,可用于快速機(jī)器代碼編譯。它是一種靜態(tài)類型的編譯語言。它提供了并發(fā)機(jī)制,可以輕松開發(fā)多核和聯(lián)網(wǎng)的機(jī)器級程序。它是快速,動態(tài)類型和解釋語言;它提供對接口和類型嵌入的支持。
特點
-
語法簡潔
Go 語言簡單易學(xué),學(xué)習(xí)曲線平緩,不需要像 C/C++ 語言動輒需要兩到三年的學(xué)習(xí)期。Go 語言被稱為“互聯(lián)網(wǎng)時代的C語言”。Go語言的風(fēng)格類似于C語言。其語法在C語言的基礎(chǔ)上進(jìn)行了大幅的簡化,去掉了不需要的表達(dá)式括號,循環(huán)也只有 for一種表示方法,就可以實現(xiàn)數(shù)值、鍵值等各種遍歷。
-
代碼風(fēng)格統(tǒng)一
Go 語言提供了一套格式化工具——go fmt。一些 Go語言的開發(fā)環(huán)境或者編輯器在保存時,都會使用格式化工具進(jìn)行修改代碼的格式化,這樣就保證了不同開發(fā)者提交的代碼都是統(tǒng)一的格式。
-
執(zhí)行性能好
Go語言是一門編譯型的語言,我們編寫好的代碼直接編譯成服務(wù)器可以執(zhí)行的二進(jìn)制可執(zhí)行文件。
-
開發(fā)效率高
Go語言雖然是一門編譯型的語言,但是它內(nèi)置了垃圾回收機(jī)制,降低了開發(fā)者的心智負(fù)擔(dān),使其擁有像Python、PHP等解釋性語言的一樣的開發(fā)效率。真正實現(xiàn)了開發(fā)效率和執(zhí)行效率的完美結(jié)合。
-
天生支持并發(fā)
Go于2009年發(fā)布,當(dāng)時多核處理器已經(jīng)上市。Go語言在多核并發(fā)上擁有原生的設(shè)計優(yōu)勢,Go語言從底層原生支持并發(fā),無須第三方庫、開發(fā)者的編程技巧和開發(fā)經(jīng)驗。
推薦學(xué)習(xí):Golang教程