This commit is contained in:
chai2010 2016-01-02 20:57:12 +08:00
parent a58df32595
commit 8772a9c000

View File

@ -14,6 +14,6 @@ Go語言的另一支祖先帶來了Go語言區别其他語言的重要特性
接下來Rob Pike和其他人開始不斷嚐試將CSP引入實際的編程語言中。他們第一次嚐試引入CSP特性的編程語言叫Squeak老鼠間交流的語言是一個提供鼠標和鍵盤事件處理的編程語言它的管道是靜態創建的。然後是改進版的Newsqueak語言提供了類似C語言語句和表達式的語法和類似Pascal語言的推導語法。Newsqueak是一個帶垃圾迴收的純函數式語言它再次針對鍵盤、鼠標和窗口事件管理。但是在Newsqueak語言中管道是動態創建的屬於第一類值, 可以保存到變量中。
在Plan9操作繫統中這些優秀的想法被吸收到了一個叫Alef的編程語言中。Alef試圖將Newsqueak語言改造爲繫統編程語言但是因爲缺少垃圾迴收機製而導致併發編程很痛苦。譯註在Aelf之後還有一個叫Limbo的編程語言Go語言從其中借鑒了很多特性。在docs目録包含了這些語言相關的文檔手冊。 具體請參考Pike的講稿http://talks.golang.org/2012/concurrency.slide#9
在Plan9操作繫統中這些優秀的想法被吸收到了一個叫Alef的編程語言中。Alef試圖將Newsqueak語言改造爲繫統編程語言但是因爲缺少垃圾迴收機製而導致併發編程很痛苦。譯註在Aelf之後還有一個叫Limbo的編程語言Go語言從其中借鑒了很多特性。 具體請參考Pike的講稿http://talks.golang.org/2012/concurrency.slide#9
Go語言的其他的一些特性零散地來自於其他一些編程語言比如iota語法是從APL語言借鑒詞法作用域與嵌套函數來自於Scheme語言和其他很多語言。當然我們也可以從Go中發現很多創新的設計。比如Go語言的切片爲動態數組提供了有效的隨機存取的性能這可能會讓人聯想到鏈表的底層的共享機製。還有Go語言新發明的defer語句。