电竞比分网-中国电竞赛事及体育赛事平台

分享

年輕人,這就是C語言家族的故事 - 程序小王的日志 - IT哇咔技術論壇_中國領先的IT社區(qū) - Powered by Discuz!

 vicself 2010-12-23

年輕人,這就是C語言家族的故事

已有 22 次閱讀 2010-11-13 15:37 |個人分類:C++|關鍵詞:C語言 故事 家族 年輕人

我闖入船艙,“嗨!你聽到一些傳聞了嗎?”

珍妮的工作并沒有絲毫的停頓:“草料(在英語中的發(fā)音跟嗨一樣,珍妮的話帶有幾分嘲諷)是用來喂馬的。什么傳聞?”

“關于加尼米德,”我解釋道,“我聽說他們在冰下發(fā)現(xiàn)了一些東西。沒有跡象表明冰層近期曾融化過,說明那東西很古老了,而且它絕對不是大自然的產(chǎn)物。”

這吸引了她的注意力。她直起身來,眼睛閃著光,“是嗎?不屬于人類的?”

“有一種嗡嗡聲。這是不是刺激了你的神經(jīng)?”

“是,嗯,還有其他的嗎?”

“沒有其他的信息了,”我走到沙發(fā)前面,一屁股坐了下去,老老實實地回答,“這僅僅是一個傳聞。而且,即使有什么大的事情發(fā)生,也不值得如此令人激動,不是嗎?用不了兩個月,我們都將在空間站里了。”

“冰下面...?"珍妮思考著,“無論這個東西是不是人造物,至少有一點可以肯定,它已經(jīng)有一段歷史了。這會促使我們思考一些大的問題,不是嗎?人類的歷史,我們從哪里來,我們到哪里去。”

“人類的起源和前進的方向,對。”我說,“這使我想起了發(fā)生在我的第一份工作期間的一些事情...”

那是一個陰天,我正在和溫迪談話。她是我的鄰居...也就是說,我們的臥室相鄰。

“對了,"我說,“我聽說Stroustrup之所以命名這種語言為C++,是因為它是在C語言的基礎上增加了一些東西,對嗎?”

“是這樣的,”溫迪說,“如果你再仔細考究一下這個名稱的語義,你能想到什么呢?”

一陣迷惘后,我只能搖搖頭:“愿聞其詳。”

“你看,它使用了后綴形式的自增運算,意思是‘拿來C語言,增強它的功能,但還用原來的。'"我們一起笑了起來。

“一個不高明的玩笑。”Guru的聲音把我們都嚇了一跳。我們轉過身,我有點緊張,但還是發(fā)現(xiàn)了一件不同尋常的事情:Guru的藍眼睛里閃著光。她接著說:“對這個被你們嘲弄的語言,你們知道它的歷史嗎?”

我放松下來,很快答道:“您的意思是...”

Guru 合上了手中的書--從封面上看是一本D&E[1]。她微微抬頭,眼睛注視著遠方然后開始慷慨陳詞,像唱歌一樣,瘦弱的身體隨著演講內(nèi)容起伏晃動:

“最初,計算機語言非常混亂,高級語言根本不存在,連固定的語言形式也沒有。貝爾實驗室的Richard Martin在使用了計算機語言的過程中意識到了高級語言的必要性。他深入地研究后,開發(fā)出了他認為不錯的BCPL語言。

“然后Ken Thompson使用了BCPL,雖然他覺得很不錯,但他認為如果想在一臺PDP-7上使用BCPL,就必須精簡BCPL。Ken Thompson深入地研究后,他開發(fā)出了一門新的語言,命名為B,它是BCPL的一個簡化版本,他認為這是一門很好的語言。

“然而B語言沒有類型的概念。Dennis Ritchie意識到了這一點,他深入研究后,對B語言進行了擴展。Ritchie 添加了結構和類型,他把這門語言叫作C語言,因為C是B的下一個字母,無論是在字母表還是在BCPL中。Ritchie 認為這門語言已經(jīng)相當好了,但是他并不滿足,繼續(xù)投入大量的心血和汗水去完善這門語言。在1978年,Brian Kernighan 和Dennis Ritchie合作出版了《The C Programming Language.》[3]這為人們帶來了很多的喜悅,人們看到了C的美妙,‘耶,這門語言真的很棒!’人們紛紛議論。

“C語言很快流傳開來。新的特征不斷的被添加,但并不是被所有的編譯器廠商支持。人們開始感到沮喪,開始呼吁“我們需要標準C!” ANSI響應了這一要求,在1989年ANSI 宣布," 請注意,我將給所有的程序員帶來快樂。因為在今天,C的標準X3.159-1989將誕生."接著ISO采納了這一標準,發(fā)布了ISO/IEC 9899-1990。這又一次為人們帶來喜悅。

“事情在進一步發(fā)展,早在C標準被發(fā)布之前,Bjarne Stroustrup就已經(jīng)致力于改善C語言。Stroustrup致力于在C語言里增加類、函數(shù)參數(shù)類型檢查和其他的一些優(yōu)秀的特征。他繼續(xù)深入,于1980年發(fā)布了'C With Classes.'這為人們帶來了更多的喜悅和興奮。

Stroustrup 并沒有止步不前。他在對C語言做了很大的改變后,產(chǎn)生了一門新的語言,他命名這門語言為C++,就是C的增強的意思。他繼續(xù)努力,在1986年出版了《The C++ Programming Language》,這再一次為人們帶來了喜悅。

"象所有的事物一樣,C++語言也在不斷的進化著。模板,異常處理(exception handling)以及其它的特征陸續(xù)被添加到C++中,人們再次為新事物而興奮。

“然而人們又開始抱怨了。那時候,不同的編譯器開發(fā)商使用不同的解決方案支持模板和異常以及其它的特征,甚至有些開發(fā)商拒絕支持這些新特性。因此ISO又行動了, 在1998年----克林頓上臺后第六年, 克雷蒂安成了除魁北克人之外所有加拿大人的總理。萊溫斯基成了媒體的大紅人,因為沒有第二個辛普森誕生,那年沒有什么大的新聞----在九月的第一天,ISO 宣布“ 請注意,我將給所有的程序員帶來快樂的消息。因為在今天,C++的標準ISO/IEC 14882:1998(E)將誕生。”接著ANSI接受了這一建議,在七月的二十七號發(fā)布了幾乎相同的標準,甚至早于ISO標準的發(fā)布,有時候事情就是這樣。這又一次為人們帶來喜悅,“啊,太好了,我們可以踩在巨人的肩膀上前進了”大家是這樣歡呼的。

故事并未結束,當時Patrick Naughton為Sun Microsystems工作了一段時間后,深感厭煩,想離開Sun ,尋求新的發(fā)展。然而公司挽留了他,‘你可以擁有一支開發(fā)隊伍,只要你愿意,一切都可以由你指揮,但要給我們帶來點酷的東西。’于是一個名叫Green的團隊產(chǎn)生了。

Green小組孤獨地在荒野上不斷的探索。他們尋求一種可用于嵌入式設備的面向?qū)ο笳Z言,他們一開始在C++的基礎上修改,但是C++的龐大使之無法滿足他們的需要,于是他們在C++的基礎上創(chuàng)建了一門新的語言Oak----這個命名僅僅因為James Gosling看到了相窗外的一顆橡樹(Oak)。開發(fā)隊伍仔細審視了這門語言,認為它相當?shù)暮谩?

也是在那個時代,美國巨型計算機應用中心開發(fā)出了Mosaic,這為我們帶來了令人興奮的WWW。隨后Bill Joy試圖公開Oak的源代碼,使Oak能使用于網(wǎng)頁瀏覽。Sun審視了這個想法,覺得不錯,但Oak這個商標已經(jīng)被人占用,所以Sun把這門新語言稱為Java,并發(fā)布了《the Java programming Language》。這又一次使人們激動,"耶!我們又有了一個真正與開發(fā)平臺無關的語言!我們認為,這真是太酷了!"

Guru 結束了她的演講,把目光轉向了我,“年輕人,這就是C語言家族的故事。”她輕輕的把遮住耳朵的一縷灰發(fā)撥開,靜穆的站了一會兒,重新低下了頭,打開她的D&E,靜靜的走開了。

我被震住了,呆呆的站了好一會才看了看溫迪。

“嗨,不要看我,”溫迪聳了聳肩,“你會慢慢熟悉她的。她是我共事過的程序員中最好的。”

我?guī)缀醪荒芟嘈拧N以噲D想記起裝有我的軟盤放在哪了。

珍妮開玩笑似的笑了起來:“你花了多少時間----工作還是思考如何離她遠點?”

“是的,”我傻笑了一下。那不是我最后一次同珍妮談論關于Guru或者其它更令人高興的的話題,

[注釋]

1. B. Stroustrup, The Design and Evolution of C++ (Addison-Wesley, 1994) ISBN 0201543303.

2. See http://cm./cm/cs/who/dmr/chist.html for alternate etymologies of "B".

3. B. Kernighan and D. Ritchie, The C Programming Language, 2nd edition (Prentice Hall, 1998) ISBN 0131103709.

4. B. Stroustrup, The C++ Programming Language, Special Edition (Addison-Wesley, 2000) ISBN 0201700735.

[參考書]

M. Ellis and B. Stroustrup, The Annotated C++ Reference Manual (Addison-Wesley, 1990) ISBN 0201514591.

J. English, The Story of the Java Platform.

D. Ritchie, The Development of the C Language.

B. Stroustrup, The Design and Evolution of C++ (Addison-Wesley, 1994) ISBN 0201543303.

[建議閱讀]

D. Bank, The Java Saga.

M. O'Connell, Java: The Inside Story.

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多