——今日阅读《C++对话系列》,喜欢上这篇文章
起源
sebastian 翻译
我闯入船舱,“嗨!你听到一些传闻了吗?”
珍妮的工作并没有丝毫的停顿:“草料(在英语中的发音跟嗨一样,珍妮的话带有几分嘲讽)是用来喂马的。什么传闻?”
“关于加尼米德,”我解释道,“我听说他们在冰下发现了一些东西。没有迹象表明冰层近期曾融化过,说明那东西很古老了,而且它绝对不是大自然的产物。”
这吸引了她的注意力。她直起身来,眼睛闪着光,“是吗?不属于人类的?”
“有一种嗡嗡声。这是不是刺激了你的神经?”
“是,嗯,还有其他的吗?”
“没有其他的信息了,”我走到沙发前面,一屁股坐了下去,老老实实地回答,“这仅仅是一个传闻。而且,即使有什么大的事情发生,也不值得如此令人激动,不是吗?用不了两个月,我们都将在空间站里了。”
“冰下面...?"珍妮思考着,“无论这个东西是不是人造物,至少有一点可以肯定,它已经有一段历史了。这会促使我们思考一些大的问题,不是吗?人类的历史,我们从哪里来,我们到哪里去。”
“人类的起源和前进的方向,对。”我说,“这使我想起了发生在我的第一份工作期间的一些事情...”
那是一个阴天,我正在和温迪谈话。她是我的邻居...也就是说,我们的卧室相邻。
“对了,"我说,“我听说Stroustrup之所以命名这种语言为C++,是因为它是在C语言的基础上增加了一些东西,对吗?”
“是这样的,”温迪说,“如果你再仔细考究一下这个名称的语义,你能想到什么呢?”
一阵迷惘后,我只能摇摇头:“愿闻其详。”
“你看,它使用了后缀形式的自增运算,意思是‘拿来C语言,增强它的功能,但还用原来的。'"我们一起笑了起来。
“一个不高明的玩笑。”Guru的声音把我们都吓了一跳。我们转过身,我有点紧张,但还是发现了一件不同寻常的事情:Guru的蓝眼睛里闪着光。她接着说:“对这个被你们嘲弄的语言,你们知道它的历史吗?”
我放松下来,很快答道:“您的意思是...”
Guru 合上了手中的书--从封面上看是一本D&E[1]。她微微抬头,眼睛注视着远方然后开始慷慨陈词,像唱歌一样,瘦弱的身体随着演讲内容起伏晃动:
“最初,计算机语言非常混乱,高级语言根本不存在,连固定的语言形式也没有。贝尔实验室的Richard
Martin在使用了计算机语言的过程中意识到了高级语言的必要性。他深入地研究后,开发出了他认为不错的BCPL语言。
“然后Ken Thompson使用了BCPL,虽然他觉得很不错,但他认为如果想在一台PDP-7上使用BCPL,就必须精简BCPL。Ken
Thompson深入地研究后,他开发出了一门新的语言,命名为B,它是BCPL的一个简化版本,他认为这是一门很好的语言。
“然而B语言没有类型的概念。Dennis Ritchie意识到了这一点,他深入研究后,对B语言进行了扩展。Ritchie
添加了结构和类型,他把这门语言叫作C语言,因为C是B的下一个字母,无论是在字母表还是在BCPL中。Ritchie
认为这门语言已经相当好了,但是他并不满足,继续投入大量的心血和汗水去完善这门语言。在1978年,Brian Kernighan 和Dennis
Ritchie合作出版了《The C Programming
Language.》[3]这为人们带来了很多的喜悦,人们看到了C的美妙,‘耶,这门语言真的很棒!’人们纷纷议论。
“C语言很快流传开来。新的特征不断的被添加,但并不是被所有的编译器厂商支持。人们开始感到沮丧,开始呼吁“我们需要标准C!”
ANSI响应了这一要求,在1989年ANSI 宣布,"
请注意,我将给所有的程序员带来快乐。因为在今天,C的标准X3.159-1989将诞生."接着ISO采纳了这一标准,发布了ISO/IEC
9899-1990。这又一次为人们带来喜悦。
“事情在进一步发展,早在C标准被发布之前,Bjarne
Stroustrup就已经致力于改善C语言。Stroustrup致力于在C语言里增加类、函数参数类型检查和其他的一些优秀的特征。他继续深入,于1980年发布了'C
With Classes.'这为人们带来了更多的喜悦和兴奋。
Stroustrup
并没有止步不前。他在对C语言做了很大的改变后,产生了一门新的语言,他命名这门语言为C++,就是C的增强的意思。他继续努力,在1986年出版了《The C++
Programming Language》,这再一次为人们带来了喜悦。
"象所有的事物一样,C++语言也在不断的进化着。模板,异常处理(exception
handling)以及其它的特征陆续被添加到C++中,人们再次为新事物而兴奋。
“然而人们又开始抱怨了。那时候,不同的编译器开发商使用不同的解决方案支持模板和异常以及其它的特征,甚至有些开发商拒绝支持这些新特性。因此ISO又行动了,
在1998年----克林顿上台后第六年,
克雷蒂安成了除魁北克人之外所有加拿大人的总理。莱温斯基成了媒体的大红人,因为没有第二个辛普森诞生,那年没有什么大的新闻----在九月的第一天,ISO 宣布“
请注意,我将给所有的程序员带来快乐的消息。因为在今天,C++的标准ISO/IEC
14882:1998(E)将诞生。”接着ANSI接受了这一建议,在七月的二十七号发布了几乎相同的标准,甚至早于ISO标准的发布,有时候事情就是这样。这又一次为人们带来喜悦,“啊,太好了,我们可以踩在巨人的肩膀上前进了”大家是这样欢呼的。
故事并未结束,当时Patrick Naughton为Sun Microsystems工作了一段时间后,深感厌烦,想离开Sun
,寻求新的发展。然而公司挽留了他,‘你可以拥有一支开发队伍,只要你愿意,一切都可以由你指挥,但要给我们带来点酷的东西。’于是一个名叫Green的团队产生了。
Green小组孤独地在荒野上不断的探索。他们寻求一种可用于嵌入式设备的面向对象语言,他们一开始在C++的基础上修改,但是C++的庞大使之无法满足他们的需要,于是他们在C++的基础上创建了一门新的语言Oak----这个命名仅仅因为James
Gosling看到了相窗外的一颗橡树(Oak)。开发队伍仔细审视了这门语言,认为它相当的好。
也是在那个时代,美国巨型计算机应用中心开发出了Mosaic,这为我们带来了令人兴奋的WWW。随后Bill
Joy试图公开Oak的源代码,使Oak能使用于网页浏览。Sun审视了这个想法,觉得不错,但Oak这个商标已经被人占用,所以Sun把这门新语言称为Java,并发布了《the
Java programming Language》。这又一次使人们激动,"耶!我们又有了一个真正与开发平台无关的语言!我们认为,这真是太酷了!"
Guru
结束了她的演讲,把目光转向了我,“年轻人,这就是C语言家族的故事。”她轻轻的把遮住耳朵的一缕灰发拨开,静穆的站了一会儿,重新低下了头,打开她的D&E,静静的走开了。
我被震住了,呆呆的站了好一会才看了看温迪。
“嗨,不要看我,”温迪耸了耸肩,“你会慢慢熟悉她的。她是我共事过的程序员中最好的。”
我几乎不能相信。我试图想记起装有我的软盘放在哪了。
珍妮开玩笑似的笑了起来:“你花了多少时间----工作还是思考如何离她远点?”
“是的,”我傻笑了一下。那不是我最后一次同珍妮谈论关于Guru或者其它更令人高兴的的话题,
[注释]
1. B. Stroustrup, The Design and Evolution of C++ (Addison-Wesley, 1994) ISBN
0201543303.
2. See http://cm.bell-labs.com/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.
分享到:
相关推荐
数据结构作业 编程语言:使用C语言 数据结构:树 简介:实现 家族谱。增删改查。
本话题聚焦于“C语言实现家族关系图”,这是一个将数据结构和算法应用于实际问题的实例。家族关系图是一种表示家庭成员之间亲缘关系的图形化方式,通过节点和边来描绘个体之间的血缘或婚姻关系。 首先,我们需要...
c语言奔跑的火柴人游戏源码 c语言学生信息系统 c语言学生成绩管理系统 c语言学生成绩管理系统源码 c语言实现图片转化为 ASCII 图 c语言实现如果cmd中的ping c语言实现数字雨 c语言实现水波纹显示效果 c语言实现的...
c语言数据结构期末大作业-家族族谱管理 要求设计实现具有下列功能的家谱管理系统: (1)输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容: 姓名、出生日期、婚否、地址、健在否、死亡日期...
C语言库函数速查手册C语言库函数速查手册C语言库函数速查手册C语言库函数速查手册C语言库函数速查手册C语言库函数速查手册C语言库函数速查手册C语言库函数速查手册C语言库函数速查手册C语言库函数速查手册C语言...
描述C语言之父的故事,以及C语言的创作过程、出版、发行的经过,描述其过人的才能在其年代,并为未来的程序设计开辟了新的道路。
c语言五子棋源码 (一个人用不了那么多可以几个人入手哦!) c语言别踩白块儿(双人)源码 c语言吃逗游戏源码 c语言地空对战游戏 c语言坦克游戏源代码 c语言大丰收游戏源码 c语言奔跑的火柴人游戏源码 c语言实现的...
C语言超级玛丽游戏C语言超级玛丽游戏C语言超级玛丽游戏C语言超级玛丽游戏C语言超级玛丽游戏C语言超级玛丽游戏C语言超级玛丽游戏C语言超级玛丽游戏C语言超级玛丽游戏C语言超级玛丽游戏C语言超级玛丽游戏C语言超级玛丽...
c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言c语言
C语言题库 C语言题库 C语言题库 C语言题库 C语言题库 C语言题库 C语言题库
期末大作业-33个C语言程序(免积分下载),程序内容如下所示: c语言火车票订票管理源码 c语言电子时钟程序 C语言超市管理系统 c语言通讯录管理系统源码 c语言商品销售系统源码(用不了那么多可以和别人一起入手) ...
C语言 火柴人 源码 火柴人经典游戏开源
c语言趣味编程源代c语言趣味编程源代c语言趣味编程源代c语言趣味编程源代c语言趣味编程源代c语言趣味编程源代c语言趣味编程源代c语言趣味编程源代c语言趣味编程源代c语言趣味编程源代c语言趣味编程源代c语言趣味编程...
单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言单片机C语言
C语言期中考试试题及答案C语言期中考试试题及答案C语言期中考试试题及答案C语言期中考试试题及答案C语言期中考试试题及答案C语言期中考试试题及答案C语言期中考试试题及答案C语言期中考试试题及答案C语言期中考试...
这个系统的核心是有效地存储和操作家谱数据,通过C语言的编程技巧,实现家谱的创建、查询、修改和删除等基本功能。 在数据结构方面,这个系统可能涉及到以下几个关键点: 1. **链表**:家谱中的关系通常是树形结构...
DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现...
C语言中级教程 C语言回顾
C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言烟花代码C语言...