首頁 >後端開發 >Golang >golang底層是c語言嗎?

golang底層是c語言嗎?

青灯夜游
青灯夜游原創
2020-04-17 14:06:3810083瀏覽

Golang(又稱Go語言)是Google開發的一種靜態強型別、編譯型、並髮型,並具有垃圾回收功能的程式語言。文法與 C 相近,但功能上有:記憶體安全,GC(垃圾回收),結構形態及 CSP-style 並發計算。

golang底層是c語言嗎?

golang底層是c語言嗎?

最早的時候,Golang是用的C語言和彙編實現的。

後面Golang實作了自舉,重寫了編譯器,所以現在是用的Golang本身實現的。

假如你發明了一種新的語言CNifeLang,首先需要用一種現有的語言寫一個CNifeLang 的編譯器,比如說就用Golang 吧;你用Golang 寫了一個CNifeLang的編譯器,能成功地把任何合法的CNifeLang 原始碼編譯為等價的目標程式。接著用 CNifeLang 寫一個程序,它與你用 Golang 寫的編譯器功能完全相同,用 Golang 實作的編譯器把這個程式編譯完成,你就得到了一個用 CNifeLang 實作的 CNifeLang 編譯器。因為這個程式的功能跟用 Golang 寫的編譯器完全相同,所以你完全可以用這個編譯器去編譯 CNifeLang,於是 CNifeLang 實作了 自舉。

-----節選自知乎,作者:CNife

拓展:

golang(go)是一種過程程式語言,可用於快速機器碼編譯。它是一種靜態型別的編譯語言。它提供了並發機制,可以輕鬆開發多核心和聯網的機器級程式。它是快速,動態類型和解釋語言;它提供對介面和類型嵌入的支援。

特點

  • 語法簡潔

    Go 語言簡單易學,學習曲線平緩,不需要像C/C 語言動輒需要兩到三年的學習期。 Go 語言被稱為「網路時代的C語言」。 Go語言的風格類似C語言。其語法在C語言的基礎上進行了大幅的簡化,去掉了不需要的表達式括號,循環也只有 for一種表示方法,就可以實現數值、鍵值等各種遍歷。

  • 程式碼風格統一

    Go 語言提供了一套格式化工具-go fmt。一些 Go語言的開發環境或編輯器在儲存時,都會使用格式化工具進行修改程式碼的格式化,這樣就保證了不同開發者提交的程式碼都是統一的格式。

  • 執行效能好

    Go語言是一門編譯型的語言,我們寫的程式碼直接編譯成伺服器可以執行的二進位執行檔。

  • 開發效率高

    Go語言雖然是一門編譯型的語言,但是它內建了垃圾回收機制,降低了開發者的心智負擔,使其擁有像Python、PHP等解釋性語言的一樣的開發效率。真正實現了開發效率和執行效率的完美結合。

  • 天生支援並發

    Go於2009年發布,當時多核心處理器已經上市。 Go語言在多核心並發上擁有原生的設計優勢,Go語言從底層原生支援並發,無須第三方程式庫、開發者的程式設計技巧和開發經驗。

推薦學習:Golang教學

以上是golang底層是c語言嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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