51Testing软件测试论坛

标题: 缺陷BUG之母——格蕾丝·霍波 [打印本页]

作者: red-hat    时间: 2007-11-7 23:27
标题: 缺陷BUG之母——格蕾丝·霍波
格蕾丝·霍波
           ——计算机软件缺陷与计算机语言之母

1944年2月,世界著名的大型电磁式自动计算机Mark-Ⅰ在美国哈佛大学启动。为这台长15米、高2.4米,自重30多吨的庞然大物编制程序的,是当时为数不多的女程序员之一、海军中尉格蕾丝·霍波(Grace Hopper ,1906-1992)博士。霍波天才的创造和发明,至今仍在广为流传的有两个:一个是计算机界通用的术语“臭虫”(Bug);另一个就是家喻户晓的“千年虫”(Y2K)。她更加辉煌的业绩并没有被公众所了解,事实上,她是计算机语言领域的开拓者,也有人把她称作“计算机软件之母”。

格蕾丝·霍波1906年出生于美国纽约一个中产家庭,父亲瓦特·莫利(W .Murray)是保险经纪人,祖父是纽约一位资深的工程师。母亲玛丽(H. Mary)虽然是家庭妇女,却很喜欢数学,这一点在当时是受社会舆论支持的,因为人们认为妇女喜欢数学,有利于管理家庭财务。母亲的数学爱好,自然给霍波的成长带来相当大的影响;但她最喜欢的人,却是慈祥的曾祖父亚力山大——美国海军的退休将军,小格蕾丝常常坐在他的腿上,抚摸军服上的各种装饰,瞪大眼睛,听老人讲惊险的战斗故事。这些,可能就是她选择海军作为自己终身职业的原因。

少年霍波是出了名的“假小子”。在家乡温特沃斯湖畔,树木茂盛,湖水清澈,她经常带着两个妹妹一起爬树、划船、游泳、捉迷藏。最像男孩性格的,是这个女孩对什么事情都爱寻根究底,只要发现不了解的东西,总想把它们拆开看个究竟。她母亲清楚地记得,格蕾丝七岁那年,为了弄懂“钟为什么朝一个方向转”的奇怪问题,她把家里的七台钟——从小号的台式钟直到大号的座钟,全部给拆了个七零八落,零件摆满了房间,却无法把它们还原。类似的事情经常发生,也常因此受到母亲的惩罚——罚她在家里挑花刺绣。

一天,她又被关在家中,心烦意乱,泪眼蒙蒙。不知什么时候,父亲已坐在她的身旁。父亲慈爱地摸着她的头说:“孩子,想要做成任何事都必须有耐心,有毅力,还要细心。你妈妈让你学绣花,其实是想培养你的这些品质。”格蕾丝点点头,认为父亲说得在理,从此后,她竭力做到既能“动”又能“静”,并喜欢上了看书和弹钢琴。

霍波的父亲是个很开明的人,他没有男孩,只有三个可爱的女儿,但他希望女儿们也像男孩那样获得受教育的机会,要求她们摆脱传统观念束缚,树立远大的志向,不要依赖父母。不久,他就把大女儿霍波送进了一所私立女子中学。
虽然学校要求女学生保持文静的“淑女”形象,可霍波仍坚持体育运动,不仅打篮球,还学会了曲棍球和水球。

就在上中学期间,霍波的家庭发生了变故:她父亲患了动脉硬化症,双腿被切除,家庭的经济骤然紧张起来。母亲勇敢地承担起养家的责任,凭着出色的几何学才能,谋到了一份工作。霍波则一边学习,一边照顾父亲,尽量减轻家庭负担。16岁那年,霍波中学毕业,拉丁文考试没有及格,不能进入大学。父母都没有责备她,他们认为女儿年龄还小,多读一年书没有坏处。于是,她被送进新泽西州一所寄宿学校补习功课,直到第二年秋天才如愿以偿考进韦莎(Vassar)学院就读。

霍波的才华到了大学终于得到充分的展示。她很快就在自然科学,特别是数学和物理方面表现出超群的能力。1928年她获得美国优等生的荣誉。同年,取得数学物理学士学位,留校担任了教师,被聘为韦莎学院的副教授。利用所获得的奖学金,霍波再次考进著名的耶鲁大学深造。1930年,她获得耶鲁大学数学硕士学位;1934年成为耶鲁大学历史上第一位女数学博士。

第二次世界大战爆发是霍波生命中的一个转折点。1943年,满怀着爱国热情,她义无反顾地加入妇女自愿救护组织,放弃了多年奋斗才得到的优裕生活。这时的霍波已是30多岁的中年人,而且有了自己的家庭,但是她坚决要求加入海军,成为一名正式的军人。参军是要经过考试的,无论是身高还是体重,她没有一项合格。霍波才不管这些,死磨硬缠说服了考官,让她进入海军学校学习,并以第一名的成绩毕业。

刚佩上海军中尉肩章,她幸运地被任命为著名计算机专家霍德·艾肯(H.Aiken)博士的助手,参与Mark Ⅰ计算机的研制。她后来回忆说:“我成了世界上第一台大型数字计算机的第三名程序员。”从此,格蕾丝·霍波走上了软件大师的成功之路。

霍波的主要任务是编写程序,她为MarkⅠ,以及后续机器MarkⅡ、Mark Ⅲ编写出大量软件。有趣的是,霍波在软件设计领域的第一项重大“发明”,竟是创造出一个著名的计算机术语——“bug”。1946年,她在发生故障的MarkⅡ计算机的继电器触点里,找到了一只被夹扁的小飞蛾,正是这只小虫子“卡”住了机器的运行。霍波顺手将飞蛾夹在工作笔记里,并诙谐地把程序故障称为“bug”。bug的意思是“臭虫”,而这一奇怪的称呼,后来演变成计算机行业的专业术语。虽然现代电脑再也不可能夹扁任何飞蛾,大家还是习惯地把排除程序故障叫做Debug(除虫)。

在为Mark系列计算机工作期间,霍波也表现出她独有的机智,有一件小事很能说明这一点。那一次,正当她在机器前工作时,突然闯进来一群检查工作的将军。MarkⅠ计算机早不坏晚不坏,偏偏在这时又有“臭虫”作怪,带领将军们参观的艾肯博士,急的顿时变了脸色。只见霍波不慌不忙,斜靠在机器上,用手按着电钮不放,以便让机器能够继续运行。这些将军们离开时一致认为,他们是这台机器没有任何故障的目击者。

战争结束后,带着美国海军的嘉奖令,霍波博士在电脑软件领域建立一系列丰功伟绩:

1949年,她加盟第一台电子计算机ENIAC发明人莫契利和埃克特创办的公司,为世界上第一台储存程序的商业电脑UNIVAC编写了许多软件,开始第一次使用所谓“简短指令代码“。

1952年,在斯佩里·兰德公司兼任系统工程师,她率先研制出世界上第一个编译程序A-O,能够将类似英语的符号代码转换成计算机能够识别的机器指令,并发表了第一篇关于编译器的论文。到了50年代中期,她又开发出Flow-Matic语言,为COBOL高级语言诞生创造了基础。

1959年5月,在五角大楼支持下,她领导着一个工作委员会,成功地研制出第一个商用编程语言COBOL。COBOL语言最重要的特征是语法与英文很接近,可以让不懂电脑的人也能看懂程序;编译器软件只需做少许修改,就能运行于任何类型的电脑。委员会一个成员害怕这种语言的命运不会太长久,特地为它制作了一块小小的墓碑。然而,COBOL语言却幸存下来。1963年,美国国家标准局将它进行了标准化。用COBOL写作的软件,要比其他语言多得多,霍波博士也因此被誉为计算机语言领域的先驱人物。

50年代计算机存储器非常昂贵,为了节省内存空间,霍波开始采用6位数字来储存日期, 即年、月、日各两位。随着COBOL语言的影响日愈扩大,这一习惯做法被人们沿用下来,到2000年前,居然变成了危害巨大的“千年虫”,这当然是霍波始料不及的事。

霍波一生没有子女,但她非常热爱孩子。由于自己的成功来自于刻苦的努力和自小受到的良好教育,所以她特别重视对年青人的教育。她曾经为青年学生作过近千场演讲,讲述计算机的未来,她将在讲演中获得的纪念品和酬金都无偿捐献给了她热爱的海军。她常常对人说:“我一生最大的收获就是我培养的那些年轻人。”

霍波生活在一个充满变化的时代,为了时刻激励自己创新意识,她在办公室墙上挂了一个逆时针转动的大钟。她也经常告诫青年人,不必害怕变化,必须勇于创新。她坚信,现在的青年会比他们这辈人更勇敢地面对问题。美国海军部门为了照顾她的身体,曾多次动员她退休,但每次都不得不将她重新请回来,因为离开了这位博学多才的软件大师,许多事情根本无法运转。

直到1986年,已获得海军少将军衔的霍波,才以80岁高龄从海军退休,继续担任DEC公司资深顾问。在波士顿,以美国军队的最高规格为她举行了退休仪式。在告别演说中,霍波将军仍然关注着未来:“我们年青的人民是属于未来的,我们必须为他们创造未来。”

为表彰她对美国海军的贡献,有一艘驱逐舰被命名为“格蕾丝号”;加利福尼亚海军数据处理中心也改称“霍波服务中心”。霍波一生还获得许多殊荣,如计算机科学年度人物奖、国家技术奖等、海军功勋服务奖、国防部卓越服务奖等等。1971年,为了纪念现代数字计算机诞生25周年,美国计算机学会特别设立了“格蕾丝·霍波奖”,颁发给当年最优秀的30岁以下的青年计算机工作者。因此,“霍波奖”正是全球电脑界“少年英雄”的标志。

格蕾丝·霍波珍惜生命,她希望能够活到94岁,即新世纪来临的那一天。然而,1992年1月1日,女将军在睡梦中再也没有醒来,离她的愿望还差8年。在阿灵顿美国国家公墓,霍波的身边放满了勋章和鲜花,她是世界妇女的楷模,也是计算机界崇拜的软件大师。

这一切成就的起点,却是在她少年时代一连拆散七台钟的那一刻。
作者: red-hat    时间: 2007-11-8 22:53
up
作者: 愤怒的黄瓜    时间: 2007-11-11 00:29
文笔不错,只是有点儿长了,不过考虑到究其一生的经历全部写到,这样的篇幅无论如何都算不上长,只能是短之又短……
先,定后者,有不为之,亦有为之者,此中斯人是也……
作者: Yzzz    时间: 2007-11-16 15:19
回家我也连拆散七台钟~哈哈。。。。
作者: red-hat    时间: 2007-11-16 16:08
原帖由 Yzzz 于 2007-11-16 15:19 发表
回家我也连拆散七台钟~哈哈。。。。

你还拆七台,估计你拆一台就离挨揍不远了!哈哈……
作者: mydreams    时间: 2007-12-12 20:59
很感动啊,令人钦佩!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2