1. MULTICS——龐大計(jì)劃的構(gòu)想

二十世紀(jì)六十年代,貝爾實(shí)驗(yàn)室、麻省理工學(xué)院及美國通用電器公司共同參與研發(fā),合作開發(fā)出一套安裝在大型主機(jī)上的分時(shí)、多用途、多用戶的操作系統(tǒng)。

這個(gè)操作系統(tǒng)被稱為“多任務(wù)信息與計(jì)算系統(tǒng)”(Multiplexed Information and Computing System),簡寫為MULTICS。

打開網(wǎng)易新聞 查看精彩圖片

1969年,因MULTICS項(xiàng)目的工作進(jìn)展緩慢,最后終究遭裁撤的命運(yùn)。隸屬于美國電話及電報(bào)公司的貝爾實(shí)驗(yàn)室由此退出此項(xiàng)目。

2. UNIX——項(xiàng)目成員的堅(jiān)守

曾經(jīng)參與過MULTICS項(xiàng)目的成員——湯姆森(Ken Thompson) 與里奇(Dennis Ritchie)并沒有輕易放棄,他們?nèi)匀粓?jiān)守在貝爾實(shí)驗(yàn)室內(nèi),希望開發(fā)出一款全新的操作系統(tǒng)。

打開網(wǎng)易新聞 查看精彩圖片

湯姆森與里奇受到Multics的啟發(fā),將許多Multics中的功能在新的操作系統(tǒng)中重新實(shí)現(xiàn)。經(jīng)過不懈努力,第一個(gè)版本的操作系統(tǒng)最終誕生。

此版本的操作系統(tǒng)因?yàn)樽疃嘀荒苤С謨蓚€(gè)用戶,經(jīng)常被人戲稱為:“不完善的Multics系統(tǒng)”(UNiplexed Information and Computing System),縮寫為“UNICS”。

然而,在操作系統(tǒng)第二次重大升級后,它真正做到了支持多人同時(shí)使用??四釢h(Brian Kernighan)提議將它的名稱從“UNICS”取諧音改為“UNIX”。這便是名聲赫赫的UNIX操作系統(tǒng)的誕生故事。

打開網(wǎng)易新聞 查看精彩圖片

3. C語言——高級語言的誕生

時(shí)間轉(zhuǎn)動(dòng)至1973年,湯姆森與里奇不斷嘗試將UNIX移植到不同的硬件平臺上。

可是他們漸漸察覺,使用匯編語言編寫的操作系統(tǒng),想要進(jìn)行移植卻異常令人頭疼。

因此,湯姆森和里奇想要完全顛覆過往,在對UNIX操作系統(tǒng)進(jìn)行第三版重大升級中,使用高級語言進(jìn)行編寫。

二十世紀(jì)七十年代,當(dāng)時(shí)還是匯編語言的天下,幾乎所有人都完全以匯編語言進(jìn)行開發(fā)程序,可想而知他們的想法在其他人看來是有多么瘋狂。

打開網(wǎng)易新聞 查看精彩圖片

最開始,湯姆森與里奇想嘗試Fortran(世界上第一個(gè)被正式推廣使用的高級語言),但結(jié)果令人失望。

后來,他們使用了BCPL(Basic Combined Programming Language)語言進(jìn)行開發(fā),并且整合了BCPL,產(chǎn)生出了B語言。

但是,經(jīng)過一段時(shí)間,里奇認(rèn)為B語言依舊不能滿足要求,于是改良了B語言,成功研發(fā)出了至今依舊大名鼎鼎的高級語言——C語言。

打開網(wǎng)易新聞 查看精彩圖片

湯姆森與里奇成功地利用C語言,重寫了UNIX的第三版內(nèi)核。

至此,UNIX這個(gè)操作系統(tǒng)無論是修改還是移植都已經(jīng)相當(dāng)便利,這也為日后UNIX的普及打下了堅(jiān)實(shí)的基礎(chǔ)。

C語言的誕生離不開UNIX操作系統(tǒng)的發(fā)展,而UNIX操作系統(tǒng)的繁榮也離不開C語言的輔助。

UNIX和C語言更像是一整塊磁鐵,牢牢地吸引著對方,結(jié)合成為一個(gè)完美的統(tǒng)一體。

4. K&R——C語言的第一個(gè)非正式標(biāo)準(zhǔn)

1979年,里奇和克尼漢合著出版了一本C語言權(quán)威著作。第一次用出版物的形式,全面、系統(tǒng)地講述了C語言的各個(gè)特性及程序設(shè)計(jì)的基本方法,包括基本概念、類型和表達(dá)式、控制流、函數(shù)與程序結(jié)構(gòu)、指針與數(shù)組、結(jié)構(gòu)、輸入與輸出、UNIX系統(tǒng)接口、標(biāo)準(zhǔn)庫等內(nèi)容。

這個(gè)版本的C語言通常被稱為K&R C。

5. C89——C語言的正式標(biāo)準(zhǔn)

1982年,美國國家標(biāo)準(zhǔn)委員會(ANSI)認(rèn)識到,對C語言進(jìn)行標(biāo)準(zhǔn)化有助于C語言在商業(yè)編程領(lǐng)域得到更廣泛的使用。

于是成立了委員會,著手制定C語言機(jī)器運(yùn)行時(shí)函數(shù)庫的標(biāo)準(zhǔn)。

這個(gè)委員會成功地制定了C語言標(biāo)準(zhǔn),并于1989年被采納為《美國國家標(biāo)準(zhǔn)X3.159-1989》,或稱為ANSI C。

在完成ANSI標(biāo)準(zhǔn)后,國際標(biāo)準(zhǔn)化組織(ISO)只對ANSI做了少量編輯性修改,便把它轉(zhuǎn)換為《國際標(biāo)準(zhǔn)ISO/IEC 9899:1990》。隨后,ANSI也采納了ISO/IEC標(biāo)準(zhǔn)。

由于美國國家標(biāo)準(zhǔn)委員會于1989年采納該標(biāo)準(zhǔn),所以這個(gè)版本通常叫做C89。

6. 后續(xù)版本——C語言的發(fā)展之路

C89版本后,還有C95(1995年),C99(1999年),C11(2011年)這幾個(gè)更新修訂版本。

7. C++——C語言的孿生兄弟

C++語言是20世紀(jì)80年代早期由Bjarne Stroustrup在貝爾實(shí)驗(yàn)室設(shè)計(jì)的。

當(dāng)軟件系統(tǒng)越來越龐大時(shí),僅僅使用面向過程的編程風(fēng)格不能很好地滿足程序編寫的要求,這時(shí)候C++的誕生很好地彌補(bǔ)了C語言的缺陷。

C++既保留了原有C的大部分語法,又加入了面向?qū)ο缶幊痰蕊L(fēng)格的支持,使得C++受到了越來越多人的喜愛與追捧。

打開網(wǎng)易新聞 查看精彩圖片