默里·霍柏,1906年12月9日生于纽约。她从小就表现出强烈的求知欲,七岁的时候出于对小机械的浓厚兴趣,为了搞清楚闹钟的工作原理,她一连拆了7个。父母对她的这种好奇心给予了极大的支持,并激励霍柏接受更高程度的教育,不要将自己局限在传统女性的角色之中。
1934年,霍柏获得了耶鲁大学数学博士学位,并从讲师晋升为副教授。后来,第二次世界大战爆发,霍柏毅然作出了改变她一生的决定———加入海军,报效祖国。其实,霍柏父系家族中就有着悠久的从军传统,其先人曾参加过美国独立战争。不过,霍柏从军之路最初并非一帆风顺,当时她34岁,体重47公斤,军方认为她年龄过大,而体重过轻。另外作为数学教授,她又被列为战争中需要保护的人物。海军官员建议她保持平民的身份。但是这些并没有改变格雷斯·霍柏的决心。经过努力,她得到了政府特别批准,并向瓦萨学院请了长假。1943年12月,她终于成为美国海军预备役的一员,进入海军女子士官学校受训,并以全班第一的成绩毕业。
霍柏接受的第一项军事使命是进入设在哈佛大学的军械计算局,这使她成为世界上第一台大规模自动序列数字计算机Mark I的第三程序员。该计算机用于计算不同天气条件下海军舰炮的瞄准角度。由于这些数据事关重大,霍柏和同事们经常要24小时运行和监控计算机系统。他们花费了无数的时间为Mark I和其后的Mark Ⅱ和Mark Ⅲ转录和输入程序。那时计算机系统无比庞大,需要很大的空间存放。
一天,Mark Ⅱ突然失灵,系统死机。技术人员赶紧检查设备,结果发现有一只蛾子从窗户飞进了Mark Ⅱ的一台继电器,从而引起系统暂时停机。他们清除了那只蛾子并将它贴在了工作日志上。领导这个技术小组并找到这只蛾子的人,就是时任海军中尉的格雷斯·霍柏。从这次事件之后,霍柏创造了计算机术语"bug"一词来记录计算机系统的故障。当时,"bug"一词专指硬件问题。到了20世纪50年代中期,霍柏将"bug"扩展为"debug",将"消除程序错误"包括在内。这个词首先在哈佛流行起来,用以描述计算机故障,后来演变成了IT界的专业术语。
1946年,霍柏在40岁的时候被告知因年龄太大,不能继续留作海军现役人员。退役后,霍柏拒绝了瓦萨学院的新职位,选择留在哈佛,作为一个平民研究者研究工程科学和应用物理。1949年,霍柏做了一个冒险的转变。她离开了哈佛,以资深数学家的身份加入了一家计算机公司。此后,她开发了第一个编译器A-0和B-0编译器,帮助定制了基本语言设计的框架,为COBOL建立了标准手册和工具。
1966年,霍柏的年龄迫使她从海军预备役退役。然而,还不到7个月,当海军在计算机上尝试了823次后,依然无法开发出一个工资单计划时,于是又将霍柏重新召回,帮助完成高级海军计算机语言的标准化。这次复职使霍柏成为美军中第一位重返现役的海军预备役女性。原定让她工作6个月,但之后就无限期延长了。其后在海军服役的岁月里,霍柏帮助制造了通用可读取的COBOL检验器,以及可把非标准COBOL语言翻译成标准版本的翻译器。
1983年,由美国总统特别任命,霍柏升为海军准将。两年后,她成为第一位获得美国海军少将军衔的女性。1986年,服役43年后,海军少将格雷斯·霍柏在美国军舰"宪章"号上举行了退役典礼。她以80岁的高龄,成为当时美军年龄最大的现役军官。在余下的日子里,她一直为数字设备公司做高级顾问。
霍柏一生获得了无数的荣誉。1973年,她被英国计算机协会评为杰出人物,成为第一个获此殊荣的美国人,也是第一位获得此项荣誉的女性。1991年9月,她获得了美国工程和技术最高荣誉———国家技术奖章。
海军少将格雷斯·霍柏逝于1992年1月1日,葬于阿林顿国家公墓,美国军方为她举行了最高规格的军葬。美国海军用她的名字命名了一艘排水量为8580吨的导弹驱逐舰。"霍柏"号舰的舰徽上盾形纹章中央的狂狮,象征着勇气和力量,同时也暗指霍柏祖先的苏格兰血统;菱形冠饰中央的海神三叉戟象征着海军力量,上方的一颗银星则代表着霍柏作为美国海军女性少将第一人的荣耀;白色饰带上的铭文"AUDE ET EFFICE"是一句拉丁语,这是霍柏的座右铭,意思是"挑战和实现",也可以说是霍柏一生的真实写照。
在她的科学生涯中,一直与计算机打交道,为计算机事业的发展作出了卓越的贡献。
1、
第一个编译器:早期的计算机操作相当的麻烦,人们要将程序和数据用穿孔的卡片输入计算机,运行的结果也是用相同的方法输出,为了几分钟的计算不得不准备相当长的时间。但格蕾丝意识到,计算机必将在未来社会中发挥重要作用,让其变的简单易用是非常重要的。于是她通过努力,推出了世界上第一个编译器,能够将类似英语的符号代码转换成计算机能够识别的机器指令。起初许多人都不屑一顾,难道计算机还能看懂英语?但她不服输的性格让她最终取得了成功,让计算机能够识别20多条类似英语的指令。1952年她发表了第一篇关于编译器的论文。让曾经怀疑过的人钦佩不已,尊称其为“编译器之母”。
2、
发现了第一个Bug:现在人们喜欢把计算机程序当中的错误叫作Bug(虫子),那么世界上第一只计算机Bug是什么样子的呢?1943年,格蕾丝正用MK2进行一项计算,突然机器停止了运行,她便和同事们查找起故障来,终于在一个继电器中发现了一只已经死掉的飞蛾,取出后机器恢复了运行,正是这个虫子造成了机器故障。格蕾丝将这个飞蛾照了相并在纸上记录下来。而后来的程序员们就用虫子(Bug)来表示引起一些莫名其秒故障的程序错误。
3、
开发高级语言:为了让计算机变的友好,让人人都能熟练的使用计算机,她一直在努力开发一种简单易用的计算机操作语言。在以前她负责的各种机器上她都作过尝试并取得了成功。后来在此基础上于1959年推出了著名的商用计算机高级语言COBOL,又被人们尊称为“COBOL之母”。
4、
重视计算机教育:格蕾丝深深的明白,自己的成功来自于刻苦的努力和自小受到的良好教育,所以也就特别重视对年青人的教育,她的课是学生们最喜欢听的,深入浅出,形象生动。比如有一次讲课,她用一英尺的铜丝对学生说:“这就是电在亿分之一秒走过的路程,叫纳秒。其一千倍就是微秒,而且决不允许出错”。她还经常的告诉青年人,要学会创新。她有一句名言:“有些人喜欢说我们一直都这么作,但这不是我们继续这么做的理由,要学会尝试另一种方法”。为了时刻提醒自己换一种方法思考,她的办公室墙上有一钟表,其指针是逆时针转动的。她的一生获得了众多的荣誉,但当有人问起最大的收获是什么时,她回答说:“我一生最大的收获就是我培养的那些年轻人”。
5、
留下一道难题:由于历史的局限格蕾丝也给我们留下了一道限时解决的难题。当年的计算机存储器一字千金,人们不得不字字计较,为了节约,在表示年份的时候只用了后两位,当时人们谁也没有意识到在进入下个世纪的时候会造成麻烦,或许乐观的认为这不会成为问题。但可怕的是,这种乐观被众多的程序员和科技工作者所接受,当人们真正认识到问题的严重时,问题已经无处不在了,这就是我们今天所必需面对的“千年虫”问题。让我们把这看作是格蕾丝留给我们的一道试题吧。这也从另一个侧面告诉我们这些开拓者们所走过的是一条多么艰辛的路程。
格蕾丝的一生与计算机、海军紧紧的联系在一起,童年的梦想一一实现。她既是一名杰出的科学家、又是一名受人尊敬的将军、慈祥的老妈妈,是举世公认的“计算机之母”。她一生没有子女,但她热爱所有的孩子,经常对学生们说:“你还没有我一半年龄大呢,要好好学习啊”。她曾经为学生们作过近千场演讲,讲述计算机的未来,而且她的许多预言早已成为现实,她将在这些讲演中获得的价值几万美元的纪念品都无偿的捐献给了所热爱的海军。
1992年1月1日新年的早晨,朝霞美丽如初,这位慈祥的老奶奶、可敬的将军,却再也没有醒来。
让我们永远的记住她:格蕾丝将军,计算机之母。