導航:首頁 > 源碼編譯 > go語言在雲上編譯的嗎

go語言在雲上編譯的嗎

發布時間:2022-02-14 18:53:21

『壹』 Go 是怎麼使用 Go 來編譯自身的

  1. Go是一個圖靈完備的語言

  2. 任何圖靈完備的語言理論上都可以用來編譯自身。比如c/c++, java, vb, php等等都可以。

至於怎麼編譯自身的:

  1. 用其它語言比如c++實現一個[Go語言編譯器-1]

  2. 用Go語言寫一個[Go語言編譯器-2]

  3. 用這個c++實現的[Go語言編譯器-1]編譯第2步裡面說的Go語言寫的[Go語言編譯器-2]

  4. 用第3步得到的[Go語言編譯器-2],再編譯一次第2步裡面說的[Go語言編譯器-2]的源碼

  5. OK,現在有一個Go語言實現的編譯器了,最開始那個c++寫的編譯器沒用了,可以扔掉不要了。以後就不停的優化使用這個Go語言實現的自身的編譯器就行了。

『貳』 go語言被編譯後,可以再編譯回來嗎

二進制文件,基本上都是反匯編成匯編語言

『叄』 為什麼要使用 Go 語言,Go 語言的優勢在哪裡

1、Go有什麼優勢

可直接編譯成機器碼,不依賴其他庫,glibc的版本有一定要求,部署就是扔一個文件上去就完成了。
靜態類型語言,但是有動態語言的感覺,靜態類型的語言就是可以在編譯的時候檢查出來隱藏的大多數問題,動態語言的感覺就是有很多的包可以使用,寫起來的效率很高。
語言層面支持並發,這個就是Go最大的特色,天生的支持並發,我曾經說過一句話,天生的基因和整容是有區別的,大家一樣美麗,但是你喜歡整容的還是天生基因的美麗呢?Go就是基因裡面支持的並發,可以充分的利用多核,很容易的使用並發。
內置runtime,支持垃圾回收,這屬於動態語言的特性之一吧,雖然目前來說GC不算完美,但是足以應付我們所能遇到的大多數情況,特別是Go1.1之後的GC。
簡單易學,Go語言的作者都有C的基因,那麼Go自然而然就有了C的基因,那麼Go關鍵字是25個,但是表達能力很強大,幾乎支持大多數你在其他語言見過的特性:繼承、重載、對象等。
豐富的標准庫,Go目前已經內置了大量的庫,特別是網路庫非常強大,我最愛的也是這部分。
內置強大的工具,Go語言裡面內置了很多工具鏈,最好的應該是gofmt工具,自動化格式化代碼,能夠讓團隊review變得如此的簡單,代碼格式一模一樣,想不一樣都很困難。
跨平台編譯,如果你寫的Go代碼不包含cgo,那麼就可以做到window系統編譯linux的應用,如何做到的呢?Go引用了plan9的代碼,這就是不依賴系統的信息。
內嵌C支持,前面說了作者是C的作者,所以Go裡面也可以直接包含c代碼,利用現有的豐富的C庫。
2、Go適合用來做什麼

伺服器編程,以前你如果使用C或者C++做的那些事情,用Go來做很合適,例如處理日誌、數據打包、虛擬機處理、文件系統等。
分布式系統,資料庫代理器等
網路編程,這一塊目前應用最廣,包括Web應用、API應用、下載應用、
內存資料庫,前一段時間google開發的groupcache,couchbase的部分組建
雲平台,目前國外很多雲平台在採用Go開發,CloudFoundy的部分組建,前VMare的技術總監自己出來搞的apcera雲平台。

『肆』 golang做後台開發有什麼優勢和劣勢

golang在近些年被追捧,不管某華,某阿在很多伺服器開發上都在使用。
你不用懷疑golang的
優勢:部署簡單,良好的語言設計,並發性好,性能優良,開發簡潔快,標准庫強大,編譯簡單
缺點:還存在一些缺陷(例如垃圾回收),缺少安全檢查,性能方面目前比不過java,第三方庫不及java
但作為新興語種,我們不用擔心,背後有谷歌支持和java持平也就是時間上的問題。
而且前面還有某華,某阿頂著不怕。

『伍』 為什麼go語言編譯的程序很大

因為把go的runtime靜態鏈接進去了。

『陸』 go語言是開源的嗎

go語言是開源的,這門語言上手是非常容易的,可直接編譯成機器碼,不依賴其他庫,glibc的版本有一定要求,部署就是扔一個文件上去就完成了。
靜態類型語言,但是有動態語言的感覺,靜態類型的語言就是可以在編譯的時候檢查出來隱藏的大多數問題,動態語言的感覺就是有很多的包可以使用,寫起來的效率很高。所以這是一門很好的語言哦,學了是肯定又幫助的,希望能幫到你

『柒』 golang適合做web開發嗎

適合。框架足夠成熟了 A Survey of 5 Go Web Frameworks
小型項目你甚至不用框架,用net/http http - The Go Programming Language
常用庫也成熟了 Top - Go Search
golang的web後端即使不concurrent也比php,ruby,python快很多很多
golang里用concurrent真的非常方便,非常非常快,超大web項目golang scale成本低
如果你想,golang的部署可以比php更方便,使用go get和http.ServeAndListen()可以不用nginx和apache
對於文件改動重新編譯其實並不是大問題,看pilu/fresh · GitHub,其實你自己寫shell腳本(也可以直接用go寫,因為它本身就是系統語言)監控文件系統改動然後自動重新build,即使是C/C++的項目這也不是大問題,人們不用C/C++寫web是因為它們不是寫web app的最佳選擇
golang寫的代碼編譯通過後,要比scripting language魯棒,因為go compiler強制一些最佳實踐

『捌』 Go語言可能會代替C語言嗎

不可能。Go到目前為止,其本身就是用C寫的。只是在語言層面實現了一些如果用C會很難寫的feature,比如goroutine。在1.5版本中,Go會bootstraping,用Go來編譯自己。
C語言,幾乎每種操作系統的系統調用都是C,C最大的作用就是用來實現新的語言。

『玖』 Go語言怎麼樣

Go語言是谷歌推出的一種全新的編程語言,可以在不損失應用程序性能的情況下降低代碼的復雜性。谷歌首席軟體工程師羅布派克(Rob Pike)說:我們之所以開發Go,是因為過去10多年間軟體開發的難度令人沮喪。

Go是谷歌2009發布的第二款編程語言。2009年7月份,谷歌曾發布了Simple語言,它是用來開發Android應用的一種BASIC語言.

Go Logo
北京時間2010年1月10日,Go語言摘得了TIOBE公布的2009年年度大獎。該獎項授予在2009年市場份額增長最多的編程語言。

谷歌資深軟體工程師羅布·派克(Rob Pike)表示,"Go讓我體驗到了從未有過的開發效率。"派克表示,和今天的C++或C一樣,Go是一種系統語言。他解釋道,"使用它可以進行快速開發,同時它還是一個真正的編譯語言,我們之所以現在將其開源,原因是我們認為它已經非常有用和強大。"

2007年,谷歌把Go作為一個20%項目開始研發,即讓員工抽出本職工作之外時間的20%, 投入在該項目上。除了派克外,該項目的成員還有其他谷歌工程師也參與研發。

派克表示,編譯後Go代碼的運行速度與C語言非常接近,而且編譯速度非常快,就像在使用一個互動式語言。現有編程語言均未專門對多核處理器進行優化。Go就是谷歌工程師為這類程序編寫的一種語言。它不是針對編程初學者設計的,但學習使用它也不是非常困難。Go支持面向對象,而且具有真正的閉包(closures)和反射 (reflection)等功能。

在學習曲線方面,派克認為Go與Java類似,對於Java開發者來說,應該能夠輕松學會 Go。之所以將Go作為一個開源項目發布,目的是讓開源社區有機會創建更好的工具來使用該語言,例如 Eclipse IDE中的插件。

在谷歌公開發布的所有網路應用中,均沒有使用Go,但是谷歌已經使用該語言開發了幾個內部項目。派克表示,Go是否會對谷歌即將推出的Chrome OS產生影響,還言之尚早,不過Go的確可以和Native Client配合使用。他表示"Go可以讓應用完美的運行在瀏覽器內。"例如,使用Go可以更高效的實現Wave,無論是在前端還是後台。

Go 同時具有兩種編譯器,一種是建立在GCC基礎上的Gccgo,另外一種是分別針對64位x64和32位x86計算機的一套編譯器(6g和8g)。谷歌目前正在研發其對ARM晶元和Android設備的支持。派克表示,"Android手機存在的問題是,我們一直沒有一個數學協處理器。"

『拾』 go語言是,運行在虛擬機里的嗎

我們這個世界真的需要另外一種C語言風格的編程語言嗎?很顯然,谷歌很早就這么認為了,在 2009 年,它借用雷蒙斯樂隊的歌「Hey!Ho!Let』s Go」,正式推出了 Go 語言。現在 Go 語言開發團隊已經開發出了這種語言的第一個穩定版本,他們稱之為 Go 1,他們將這種語言推向世界,希望人們用這種語言「開發出健壯的軟體產品和作品。」那麼,現在人們對這種語言的使用情況又是如何呢?讓我們先回顧一下,什麼是 Go 語言,是什麼促使谷歌決定推出這樣一種語言?按 Go 語言的「常見問題」里的說法,自從那個「重要的系統級編程語言」誕生距今已超過十幾年了,這段時間計算機世界已經發生了很大的變化。谷歌的才人們對目前現有的各種語言深感失望,他們必須要在「快速的編譯、快速的執行或簡單編程」之間做出選擇。「沒有一種主流的編程語言,例如C,C++,Java,Python 等,能提供谷歌人想要的全部特徵。於是,谷歌的工程師從 2007 年起開始開發 Go 語言。「常見問題」里這樣說:Go 語言在基本語法上」基本上屬於C語言家族「,但它從 Pascal 語系吸收了」大量的理念「,還有一些思想是來自其它的語言。但對於程序員來說,應該把它當成一種全新的語言,一種以」讓程序員更有效率,讓編程更有效率,至少是讓我們更有效率並且使編程更有樂趣「的理念為設計目標的編程語言。Go 語言擅長做什麼…?那麼,Go 語言擅長做什麼?根據谷歌著名的軟體工程師——Go 語言的設計人之一——Rob Pike 的說法,它是用來開發」大型軟體「的。Pike 說 Go 語言適合於」很多程序員一起開發的大型軟體,並且開發周期較長,支持雲計算的網路服務:簡言之,就是服務端軟體。Go 語言能夠讓程序員快速開發,並且在軟體不斷的增長過程中,它能讓程序員更容易地進行維護和修改。它融合了傳統編譯型語言的高效性和腳本語言的易用性和富於表達性。「(作為原貝爾實驗室 Unix 開發小組成員,Pike 對系統軟體有相當的認識。)但對於其它類型的軟體,Go 語言也一樣的好用。例如,我在 Google+ 上詢問了 Go 語言的使用者,得到了 Douglas Fils 的回復,他正在拿各種語言做實驗。Fils 說他現在有時會開發一些 Web 應用程序,大多數都是在 Java 虛擬機(JVM)平台上。「所以 Java 自然是最常用的。我最近開始嘗試更多的語言,例如 Scala 和 Groovy。我用 Groovy 語言已經開發了不少的東西,而且剛剛完成了一個 Groovy/Grails 語言上的大型項目。我還研究了一下 Ruby on Rails/Python (Python 框架),並用它們做了一些東西。」他說他用早期版本的 Go 語言開發了一個 Web 界面來處理數據資源。但很不幸。「當時的 Go 的程序庫和語法使得開發起來很困難。我還嘗試了 node.js,而且,到了一月份,我的精力完全轉向了 node.js.」Node.js,Fils 說,很流行,「雖然我很喜歡它,但它的單線程事件循環機制和非阻塞的編程模式讓我不太滿意。還有,所有的東西都要用 Javascript 的回調函數,我不喜歡這樣。」很顯然,他不是一個 JavaScript 的粉絲。Go 語言的語法和結構,從另一方面講,「還是很簡潔的。」當Go 語言的語法和結構趨於穩定,並發布了 Go 1 時,他覺得應該轉回來,重寫他的 Go 語言程序。這回,他想起來了當初為什麼想用 Go 來開發。關於Go 語言的爭論Fils 說,在 Java 里,很多東西都需要有一定的模板套路,這是很討厭。他說 Scala 和 groovy 要好一些,但仍然是個問題。Go 語言給人的感覺像一個動態的類型化語言,Fils 說,但 Go 語言里靜態類型特徵並不像 Java 里那樣明顯。Go 語言的垃圾收集管理,比 JVM 要好的多。跟 Groovy 這樣的動態語言比起來尤其能看出這點。Fils 在評論中說 Go 語言的速度比其它語言快很多倍。它運行速度快但不影響負載量。它編譯所需的時間很短,他在開發時能邊開發邊編譯,就像動態語言那樣迅速。最後,他說使用 Go 語言要比使用 Node.js,Java 或以 Java 為基礎的語言,Ruby on Rails 等語言要有趣的多。在開發 JVM 平台上的應用時,我總感覺自己是一個系統管理員,而不是一個開發者。我要修改堆空間,我要研究負載均衡或內存問題或其它的資源管理問題。而使用 Go 語言,我不需要考慮這些。我開發,編譯,測試,運行,部署,非常的享受。請注意,並不是所有的人都喜歡 Go 語言。你可以看一看 Shaneal Manek 的關於 Go 語言的垃圾收集系統以及腳本語言和編譯型語言之間比較的評論。Go 語言能走向主流嗎?你的期望是什麼?按照 RedMonk』s Stephen O』Grady 的說法,對於 Go 語言來說現在還非常年輕。通常,程序員會分成兩個陣營:要麼歡迎底層語言和腳本型/垃圾收集器型語言的融合,要麼是反對這樣做。對於後者,毫無意外的,他們是C語言的堅定擁護者。圍繞著 Go 語言有很多的爭論,這不令人吃驚,任何一種語言都是這樣。而令人吃驚的是目前 Go 語言在程序員中獲得了相當的吸引力。O』Grady 二月份在 RedMonk 編程語言分級中把 Go 語言放入了第二梯隊。但是,他說,考慮一下 Go 語言是如此的年輕,「即使是目前這種成績也是讓人相當的印象深刻了。」谷歌已經發布了 Go 語言的穩定版本,並且在 Google App Engine 支持部署這種語言的應用,這將給 Go 語言帶來更多的吸引力。Go 語言能否成為一種「主流」語言,這需要由時間來判定。不過,看起來除谷歌之外還有很多公司對這種語言也很感興趣,比如 Engine Yard 等公司。那些對目前的現存的語言不太滿意的程序員大概對 Go 語言都在拭目以待。如果你在使用 Go 語言或之前簡單涉略過它,你需要注意,Go 1 版引入了不少的變化。然而從 Go 1 版開始,Go 語言的變化將會遵循它的規格說明書進行。根據 Go 語言的開發人員的透露,「也許在某個時間,我們會推出 Go 2 的規范,但在此之前,用 Go 語言編寫的程序在今後的 Go 1 版本(Go 1.1, Go 1.2 等)上都能正確的運行。」你用Go 語言開發過什麼項目嗎?

閱讀全文

與go語言在雲上編譯的嗎相關的資料

熱點內容
ubantu伺服器怎麼開機 瀏覽:13
演算法系統學習網站 瀏覽:143
js運行時載入和編譯時載入 瀏覽:323
伺服器上刪除的文件怎麼恢復 瀏覽:908
長歌行pdf 瀏覽:447
馬爾可夫演算法的基本原理 瀏覽:469
海康伺服器怎麼進入raid配置 瀏覽:189
網站伺服器卡頓什麼原因 瀏覽:89
linux定時任務腳本 瀏覽:825
什麼app能看美國電視劇 瀏覽:507
木工ug編程圖檔 瀏覽:690
稅制pdf 瀏覽:437
pdf拆分成多個pdf 瀏覽:370
抖音app無法安裝怎麼解決 瀏覽:14
數控機床與編程課後答案鄭堤 瀏覽:972
通達信編程詳解 瀏覽:798
低波動性加密貨幣 瀏覽:962
pdftoexcel在線 瀏覽:763
gta愛樂之城怎麼開伺服器 瀏覽:44
離心壓縮機的缺點 瀏覽:484