Go語(yǔ)言源碼可追溯到1972 年?
周四就有地鼠提問(wèn),“Go 源碼中幾十年前的那些修訂是什嘛情況哦?”
原來(lái),Go 代碼庫(kù)的最初四次修訂發(fā)生于 1972-1988 年,然后才有了 Go 語(yǔ)言規(guī)范的初稿。
其中,***次修訂 Revision f6182e5abf5e (1972) 是 Brian Kernighan《B 語(yǔ)言入門(mén)教程》第七節(jié)中的“hello, world!”示例代碼:
- main( ) {
- extrn a, b, c;
- putchar(a); putchar(b); putchar(c); putchar('!*n');
- }
- a 'hell';
- b 'o, w';
- c 'orld';
第二次修訂 Revision b66d0bf8da3e (1974) 將程序用 C 語(yǔ)言重寫(xiě)了一遍,當(dāng)年 Unix 內(nèi)核的主要部分已經(jīng)采用 C 重新編寫(xiě):
- main() {
- printf("hello, world");
- }
第三次修訂 Revision ac3363d7e788 (1988) 按 ANSI C 草案的標(biāo)準(zhǔn)加上了 #include 語(yǔ)句,并補(bǔ)上了漏掉的換行符:
- #include <stdio.h>
- main()
- {
- printf("hello, world\n");
- }
第四次修訂 Revision 172d32922e72 (1988) 則給程序加上了輸入原型與返回值:
- #include <stdio.h>
- int
- main(void)
- {
- printf("hello, world\n");
- return 0;
- }
(次年,標(biāo)準(zhǔn) C89(ANSI X3.159-1989)誕生。)
這四次修訂重現(xiàn)了編程語(yǔ)言由 B 到標(biāo)準(zhǔn)化的 C 的發(fā)展史,也顯示了項(xiàng)目組的宏偉抱負(fù)。當(dāng)然,Go 團(tuán)隊(duì)本身也是大有來(lái)頭,其中就包括 B 語(yǔ)言與 Unix 作者 Kenneth Thompson 和 Plan 9 架構(gòu)師 Rob Pike,他倆都曾在貝爾實(shí)驗(yàn)室工作,并共同完成了 UTF-8 編碼的創(chuàng)立。(via cnet)在 Go 語(yǔ)言中,Ken Thompson 還彌補(bǔ)了沒(méi)能在 Unix 中“拼全‘create’”的遺憾。(via mattn)
Go 公布初期就提供了 cgo 命令以及 gcc 前端 gccgo,可以說(shuō) Go 本身就是對(duì)歷代成果 fork 而來(lái)的項(xiàng)目。
敬請(qǐng)期待 Go 的正式發(fā)布!
原文出自:http://www.guao.hk/
【編輯推薦】