计算机软件之母

发布:追蝶   时间:2007-10-4   阅读:1178  

参考资料:
www.sawin.cn/SawinPilot/Fame/ShowSawinFame.asp?FMID=60
hopper.techcn.com.cn

Grace Murry Hopper
计算机业最杰出女性,Cobol语言设计者,美国海军少将。设计第一个编译程序,发现世界上第一个BUG!也是千年虫Y2K制造者。


简要介绍

  杰出的计算机科学家格蕾丝是Cobol语言的主要设计者之一,被称为Cobol之母。她于1906年出生在纽约市。她祖父是美国海军少将(她本人后来也成了海军少将)。1934年获得数学博士学位。1943年,她像成千上万的美国妇女一样加入军队,被分配到隶属于哈佛大学的一个研究所,参与第一代计算机相关的研究项目。

  她使用的MarkⅠ机在当时是个奇迹,能在一秒钟内进行3次加法运算,这在40年代堪称超高速运算。美国武器系统当时正依赖于快速计算。格蕾丝在MarKⅠ机上工作最困难的经历是为它撰写操作手册。

  有一次,格蕾丝使用的MarkⅡ机出了故障。出错的继电器找到了,故障的原因也找到了:里面有一只死蛾子。蛾子被用镊子夹了出来,她们用胶条贴在记录本上,在旁边写道:“First actual bug found。”(这是发现的第一只虫子。)bug这个词后来成为计算机领域里的一个习惯说法。

  她决心证明她能够让计算机做她能够规定的任何工作。到1954年,一个人带来一些函数,他已经算了6个月,让格蕾丝算出前15个导数。18分钟后,她就把导数交给了这个人。格蕾丝证明了:计算机不仅是数学仪器,当进行数值运算时,它控制运算符号,当进行数据处理时,它控制数据处理符号。

  1957年,她设计的Flow-matic系统完成了,被称作B--0。这是第一个英语数据处理的编译程序,也是第一个运用词语的计算机语言。后来,Flow-mafic被吸收进Cobol这个广为使用的商业计算机语言,这是格蕾丝的一大贡献。

  从1959年开始,格蕾丝和同事一起设计Cobol计算机语言,Cobol使用的句法和术语更接近自然英语。Cobol将程序和数据截然分开,因此,如果编程员要改变程序,他只需要改变前面编写的程序部分,不必全改。这种语言有显著的文件处理能力,它支持顺序文件和直接存取文件,特别适用于管理存储在磁带或磁盘上的大量数据。

  本说明采用了人民网陈杭杭以及首都师范大学林义编译的文章。

  其他照片

—————————————————————————————————————————————————————


海军中最老的一个人

  也有人批评她的编译器不能运行,他们认为计算机只能做算术而不能编程。这给了格蕾丝一个机会去证明,自己的编程不仅是有价值的,而且在这项工作中,女子与男人一样有能力干好。而且在一定程度上,格蕾丝相信女人比男人更能当好程序员,因为男人总在找到第一个问题的答案前就去解决一个新问题。1954年,格蕾丝开发出一个操作解析微分程序,欢迎大家带着函数来寻求答案。有人带来一个异常复杂的函数,花费了他6个月的时间。而格蕾丝只花了18分钟就解决了。这个人根本不相信这样的“神话”,他坚持认为格蕾丝派了人躲在机器后面输入了结果!格蕾丝还曾编写了一个小型存货价格程序,然后她又写出一种规则,能将用法语或德语写成的同一程序译成机器代码。管理层对此根本不相信,他们认为“在费城制造出来的计算机不可能懂得法语或德语”。但是格蕾丝赢了争论。格蕾丝说,“计算机基本上是一个符号操纵器,当它进行大量数字运算时,它就操纵算术符号;当它进行数据处理时,它就操纵数据处理符号。”格蕾丝努力向人们展示,计算机并非仅仅是一个运算设备,它还有更多的功能等待人们开发。

  到了1957年,计算机界还在为一件事感到烦恼,那就是科研机构已经可以使用FORTRAN,但它却不能用于商业。1959年4月8日,包括格蕾丝在内的6个人在宾夕法尼亚大学计算机中心召开了会议。一些计算机用户、厂商都派来了代表。他们讨论了制定自动数字计算机通用商业语言的规格书。后来类似的会议又开了一次。开发COBOL的研究组织和人员产生了。格蕾丝被人们尊称为“COBOL之母”,尽管编写这一语言的委员会中并没有包括格蕾丝,但她编写的FLOW—MATIC语言在很大程度上影响了他们的思想,并被COBOL语言大量地吸收进去。

  1983年,格蕾丝晋升为美国海军将军。1986年,海军部门再次要求她退休,但是他们发现,离开了她就无法正常地工作,不得不又将她请了回来,让她再工作6个月,但实际上这一次她一直工作到生命结束。当时军官退休年龄一般为62岁,但是格蕾丝超过这一期限19年,这是议会批准的非常时限。格蕾丝喜欢自夸自己是海军历史上服役时间最长的临时人员。她常常会在演讲中讲述给听众们一个故事:一次她正通过机场的行李检查处,怀疑的门卫问她是否是海军人员。她回答:是的,这个人盯了她很长时间,这个矮小的女人,穿着不合身的制服。‘你一定是海军中最老的一个人。’最后他终于脱口而出。她正是。在1986年海军为她举行的退休庆典上,格蕾丝对着一群身穿白色制服的年轻水手说,“你们知道吗?我是最后一个自二战服役至今的人。”

  格蕾丝当时每年演讲200场,非常吸引年轻的听众,以至于她最重要的贡献是在培训年轻人方面。格蕾丝在演讲中多次批评了电脑工业,由于缺乏标准,政府每年在软硬件上花费了大量的资金,而这些资金由于软硬件不匹配的原因被浪费掉了。应该由政府或商界财团来提出一个标准,而不是由一个占统治地位的公司来提出。她还经常在演讲中告诉青年人,要学会创新。她有一句名言:有些人喜欢说我们一直都这么做,但这不是我们继续这么做的理由,要学会尝试另一种方法。为了时刻提醒自己换一种方法思考,她的办公室墙上有一种钟表,其指针是逆时针转动的。她一生获得了众多的荣誉,但当有人问起她最大的收获是什么时,她回答说:“我一生最大的收获就是我培养的那些年轻人。”

  由于历史的局限,格蕾丝也给我们留下了一道限时解决的难题。当年的计算机存储器一字千金,人们不得不“字字”计较。为了节约,在表示年份的时候只用了后两位,导致我们现在不得不面临“千年虫”问题。

  1992年1月1日早,格蕾丝去世。她葬于美国国家公墓,这是极高的荣誉。
—————————————————————————————————————————————————————


计算机程序之母

  二次世界大战爆发,是格蕾丝生命中的一个转折点。她义无返顾地加入妇女自愿救护组织。当时的美国,有很多人对一个妇女进入海军抱有成见,但格蕾丝不为所动。要真正成为一名海军,必须通过层层考察,而格蕾丝不论是身高还是体重都差得很远,况且她已经30岁了,因此被拒绝了。但不服输的性格帮了她,她像孩子一样软磨硬缠,终于如愿进入了美国海军学校,实现了儿时的梦想,并以第一名的成绩完成学业,成为一名海军上尉,被分配到与计算机有关的部门工作。由于祖父是一个海军军官,她在授衔后曾带着一束花去给祖父扫墓。格蕾丝认为在那个时代妇女能成为一个海军军官是非常自豪的事情,她一定要告诉祖父,这样祖父就会安息了。

  她成为著名计算机科学家霍德·艾肯的助手,负责操作马克1号——最早的模拟计算机,帮助海军在天气不好的时候计算炮弹的弹道。格蕾丝主要的工作是编程,所以她被公认为世界上第一个程序员。后来又陆续在后继的马克2号、马克3号机器上工作,出色地完成了任务。1943年,格蕾丝正用马克2号进行一项计算,突然机器停止了运行,她便和同事们查找故障,终于在一个继电器中发现了一只已经死掉的飞蛾,取出后机器就恢复了正常运行。格蕾丝就将这飞蛾照了相并在纸上记录下来。而后来的程序员们就用“虫子(Bug)”来表示一些莫名其妙的程序错误。

  当格蕾丝第一次看见马克1号时,她这样描述当时的情景:“当我走入马克工作间时,艾肯朝51英尺高的马克挥舞着手臂说,这就是‘计算引擎’。我感到这是我见过最棒的机器了,我保持着沉默,不知道该看些什么才好。”格蕾丝随后就拿到了一本代码本,切入到充斥着计算机语言的生活中。有一天,艾肯给了她一个新任务,写一本计算机操作手册。格蕾丝被吓坏了,认为自己做不到。但艾肯的命令很简洁:“你现在是一个海军了。”格蕾丝开始编写《自动连续控制计算机操作手册》,她回忆说:“我每天都要大声念10页给他听。”马克1号的研究工作令人振奋,但也让人身心疲惫。艾肯是一个工作狂,作为他的下属,格蕾丝也一样整个身心投入到工作中,“如果工作没有完成,即使该吃饭了,也要守在那里。我经常晚上就睡在桌子上等着,看我的程序是否能够通过。”一天早上,格蕾丝又刚刚和马克1号、马克2号度过了一夜。艾肯问她都干了些什么,“当这两个该死的计算机的女伴。”格蕾丝恶狠狠地说。

  她在1945年与文森特离婚,同时文森特死于二战战场上,两人没有孩子。二次大战结束后,许多妇女救护组织的成员都重新过起了平常的生活,而格蕾丝留在了海军部门。当她已经40岁时,不得不退役了(当时服役的年龄最大是38岁),去了哈佛大学计算机实验室,并参与研制了许多类型的计算机,但她仍是海军后勤部门的一员。1946年格蕾丝还获得了美国海军的嘉奖。

  二战结束后,格蕾丝曾帮助保险公司编写程序,这使她开始对计算机的商业用途产生兴趣。“我开始明白将计算机用于商业比将其用于数学科学及工程要复杂得多。因为没有现成的公式,因为每一个步骤可以走向三五个不同的方向。”格蕾丝在哈佛教了三年书后,又去了一家费城的公司工作,这家公司是由莫齐利和艾克特创办的。她作为资深数学家加入他们的设计行列。当时正值莫齐利和艾克特接近完成BINAC,这台机器被用于保密的Snark导弹项目。1949年,格蕾丝前往加利福尼亚向航空公司的职员介绍如何使用这台计算机。因为BINAC是用8位数编程的,格蕾丝得自己学习如何使用这种代码进行加减乘除。然而,在这连续的三个月内,她遇到了数不清的问题。她向她的弟弟——一位银行家请教,她的弟弟花了几个晚上的努力来教她。

  格蕾丝一直在这家公司当资深程序员,在公司被兰德收购,后又被斯佩里公司兼并时也依然如故。1952年她被任命为斯佩里公司UNWAC部的系统工程师和自动程序负责人,再这个职位上她一直呆到1964年。在这里,她参与设计了世界上第一台商业电子计算机UNIVAC,其速度是马克1号的1000倍。

  在工作过程中,格蕾丝不时遇到一些代码书写导致的错误,她于是下定决心做一些改进。通过努力,格蕾丝推出了世界上第一个编译器,能够将类似英语的符号代码转换成计算机能够识别的机器指令,让计算机能够识别20多条类似英语的指令。她解决了一个编写计算机程序的问题,就是如何向前跳转到那些还未写完的程序部分。格蕾丝在解决这个问题时,想起了自己在大学当篮球队员的经历。女子篮球规则规定,只允许一次带球,所以有时你得向前传给一个队友,然后跑到底线再次得球。格蕾丝将这一规则用到解决向前跳问题的模式中。她在存储器底端设置了一个叫做“中立角”的部分,当她希望从当前工作点向前跳转时,她就跳转到中立角的一个点上。1952她发表了第一篇关于编译器的论文,让曾经怀疑过的人钦佩不已,尊称其为“编译器之母”。
—————————————————————————————————————————————————————


早年生活

  格蕾丝·赫柏,1906年12月9日生于纽约,是家中三个孩子的老大。从小家庭对她的影响很大。她父亲在高中时就因病失去了双腿,但通过自身努力,成为一个成功的保险公司经纪人。这对格蕾丝的人生观影响颇深。母亲玛丽,爱好数学,有出色的几何才能,由于老担心格蕾丝的父亲有个三长两短,怕自己难以承担家庭的支出,就迫使自己学会谋生必需的工作技能,以便必要时能自己养家糊口。因此也十分勤勉。格蕾丝的外祖父是一个土木工程师,传给她对几何学的爱好。他总是带着格蕾丝,让她负责拿测量杆。而太祖父亚历山大是她最喜欢的人,他是美国海军的一位将军。小格蕾丝喜欢坐在他腿上,抚摸军服上的各种装饰,使她从小就对海军产生浓厚的兴趣,并影响了她一生的职业选择。。

  格蕾丝聪明伶俐,从小脑子就充满着无数新奇的想法,喜欢将各种小装置拆开再组装,并以此为乐,甚至连普通的农具也不放过,要探个究竟。7岁时,有一天,她是想看看钟表是如何工作的,结果拆开了就再也装不回去了。她只好找来另一个再拆开参考。最后,家中所有的7个钟表全部被她拆开了。她的父母从外面回来,看到格蕾丝正坐在地上,将家里所有的钟表大卸八块,全神贯注地摆弄着已经卸成零部件的几个钟表,全然没有觉察吃惊不已的父母。她的父母并没有因此生气,也不忍心打断她的工作,只是静静地看着,直到格蕾丝发现他们。格蕾丝看到父母回来非但没有害怕,还问了一个问题:“为什么所有的钟表都朝一个方向转动?”

  每年夏天,她几乎都在新罕布什尔州老家的村舍中度过。在那里,她学会了爬树,喜欢捉迷藏等各种游戏。当然也跟着母亲学会了针线活以及阅读、弹钢琴等。

  格蕾丝的双亲相当开明,认为格蕾丝不能成为一个普通的传统型家庭妇女,坚定地像支持儿子一样支持格蕾丝对知识的追求,并认为自己的女儿应该接受大学教育,尽管这会给家庭增加不小的经济负担,但这是将来获得一个稳定工作所必需的。高中时,格蕾丝喜欢打篮球、场地曲棍球和水球,有股男孩子气。由于拉丁文考试未能过关,她又在新泽西州的Hartridge学校寄读一年。

  1924年,格蕾丝18岁时进入VASSAR大学学习,很快就在自然科学、特别是数学和物理方面表现出超群的才能。1928年获得美国优等生的荣誉,成为VASSAR大学研究员。利用所获得的奖学金,她到耶鲁大学继续学习她所热爱的数学,于1930年获数学硕士学位,1934年获得博士学位。那时候能得到数学博士学位很了不起,从1862年到1934年,美国只有1279个人获得过这个学位。毕业后,她留在母校VASSAR大学教书,从数学助教一直做到副教授,直到二战爆发。格蕾丝在1930年6月15日与纽约大学的英文教师文森特结婚,他们在1945年分手。
—————————————————————————————————————————————————————


关于女性的题外话

  据统计,目前全球网民中男性和女性基本持平,而且女性数量大有冲破半边天的势头。看来网络世界会是最早实现男女平等之地。甚至有学者认为,女性可能比男性更能适应网络。尽管如此,在IT业内,在体现最高水平的技术天才和商业领袖方面,阳胜阴衰得实在太厉害了。IT业作为一个高智商高节奏的商业环境,是一个尔虞我诈最激烈的地段。这种特性可能限制了女性杀出重围,脱颖而出的可能。当然,当代的IT业也不乏成功的女强人。只是相对于男性而言,她们的数量少之又少,而且影响十分有限。国际IT大公司中总裁级的女性人物寥寥无几。

  目前,算是有点名气的女强人有:桑德拉·库尔茨格(Sandy Kurtzig),化学工程博士,设计出“人人”软件,专门用于HP 3000小型机。在HP的帮助下,她成立了Ask公司,这大概是硅谷最成功的软件公司。1982年,Ask股票上市,库尔茨格成为美国历史上最早的一位使公司股票上市的女性,而且是第一位硅谷大公司的女总裁。1994年,ASK被软件鲨鱼王嘉廉购并,纳入了CA旗下。另一位赫赫有名的女强人是Kim Polese,过去是Sun公司 Java项目产品经理。在她策划下,Java从一个前景暗淡的小项目发展成世界上最热门的技术。1996年她跳槽,创办了Mariba公司,担任总裁。1998年,她和安迪·格罗夫(Andy Grove)、比尔·盖茨(Bill Gates)、拉里·埃里森(Larry Ellison)等顶尖人物一起,名列97年全美25位最佳总裁之列,她是唯一的女性。她说“性别通常是很敏感的,男人看不起你,或当你不在时说些轻视的话,甚至就因为你是女人而不希望你成功。”但创业后由于Kim过于注重宣传自己,而忽略了产品,目前公司前景不容乐观。原朗讯(Lucent)GSPB部门总裁卡莉·菲奥莉纳(Carly Fiorina),成为HP新任总裁兼CEO,是首位计算机大公司的女首领,颇有开天辟地的感觉。此外,还有HP激光打印机部总经理Carolyn Ticknor,微软企业客户部副总裁Deborah Willingham,Autodesk主席兼CEO Carol Bartz,ED风险基金CEO Esther Dyson,都可算作是业内的名人。 在计算机业发展初期,女性有过大放光芒的时期,也不乏重量级的才女。当时搞计算机硬件设计的多是男性工程师,而为计算机编程,赋予计算机灵魂的多是女性。一软一硬,颇有所谓的“男耕女织”的氛围。其中在计算机历史上位置显赫的就有安达(Ada Byron)和格蕾丝·赫柏(Hopper)。

  安达是诗人拜伦的独生女儿,1833年遇见巴比奇(Babbage),他正在设计第一台机械计算机器——差分机。8岁就是数学天才的安达是当时仅有的几个能理解巴比奇眼光的人,他们开始了整个一生的维多利亚式的合作。安达为差分机编出了世界上第一个程序,还为程序设计创建了一个系统的理论。她是世界上公认的第一位软件工程师,是软件的开山鼻祖。但后来她却成了一个赌棍,酒鬼和可卡因吸毒者,36岁时死于癌症。1981年,美国防部费资250亿美元和10年时间开始了一种通用语言,命名为Ada语言,以作纪念。

  1944年2月,世界上最早的继电器计算机马克一号在哈佛启动。设计师是霍华德·艾肯,为马克一号编程的则是赫柏女士,她是声明遐迩的数学博士,后来还为第一台储存程序的商业电子计算机Univac编程,又率先发明了第一个计算机编译程序A-O和计算机商用语言Cobol,被公认是计算机语言领域的“祖奶奶”。而且她是将程序故障称为“Bug”(臭虫)的第一人。这位女博士还是海军中尉。可以说,在计算机历史上,赫柏是数一数二的女性人物。

  不过,有一点必须指出,在计算机发展初期,程序设计还是一种地位较低的工作。当时大多数程序员都是女的,她们组成了一个有趣的团体。后来,随着计算机程序越来越重要,程序员的地位开始上升,男性逐渐介入。尤其是软件商业化、产业化后,这一领地开始成了男人的又一天地。