格蕾丝·霍珀

美国的计算机科学家和美国海军军官

格蕾丝·穆雷·霍珀(英语:Grace Murray Hopper,1906年12月9日—1992年1月1日),本名格蕾丝·布鲁斯特·穆雷(英语:Grace Brewster Murray),霍珀(Hopper)为夫姓,生于美国纽约州纽约市,美国海军准将及电脑科学家,世界最早一批的程序员之一,也是最早的女性程序员之一。她是哈佛一型电脑上第一个专职程序员,创造了现代第一个编译器A-0 系统,以及第一个高级商用计算机程序语言COBOL,被誉为“COBOL之母”。她也是2000年问题的创造者。她培育出许多编程语言专家,被人称为“不可思议的格蕾丝”(Amazing Grace双关语[a]

格蕾丝·穆雷·霍珀
(Grace Murray Hopper)
格蕾丝·霍珀(Grace Hopper)
出生(1906-12-09)1906年12月9日
 美国纽约州纽约市
逝世1992年1月1日(1992岁—01—01)(85岁)
 美国弗吉尼亚州阿灵顿县
军种 美国海军
服役年份1943-1966,1967-1971,1972-1986
军衔准将
获得勋章国防部杰出服役勋章
功绩勋章英语Legion of Merit
服役有功奖章英语Meritorious Service Medal (USA)
美国战役奖章英语American Campaign Medal
第二次世界大战胜利奖章
国防部服役奖章
武装部队预备役奖章
海军预备役勋章英语Naval Reserve Medal
1984年的霍珀

电脑术语“调试排错”(debug)便是她的同袍在哈佛二型的继电器上发现一只飞蛾造成短路,才正式成为计算机程序的专有用语。

她是美军第一个获得准将头衔的女性,美国海军驱逐舰霍珀号驱逐舰以她来命名。配置于国家能源研究科学计算中心英语National Energy Research Scientific Computing Center超级计算机Cray XE6英语Cray XE6,便是以霍珀命名,以表彰她的贡献。耶鲁大学也有霍珀学院以纪念之。

生平

 
1960年在UNIVAC键盘前的霍珀

霍珀出生于纽约市,进大学之前,就读于私立沃德罗+哈特睿智学校英语Wardlaw-Hartridge School。1928年大学毕业于瓦萨学院并获取数学与物理双学士学位,在校期间也是美国大学优等生荣誉学会英语Phi Beta Kappa成员。大学毕业后随即进入耶鲁大学研究所就读,于1930年获取硕士学位,1934年获取数学博士学位,论文为《新型不可约性判断准则》(New Types of Irreducibility Criteria)。霍珀获取博士学位后,回到瓦萨学院任教。

 
1983年霍珀被升为海军准将

1943年,第二次世界大战期间,她志愿加入美国海军后备集团军,在美国海军女兵预备役英语WAVES服役。她体重过轻,不符合军方标准,但因战时人力短缺,军方仍然决定让她入伍。

1944年7月,她从位于史密斯学院的预备军官学校毕业。以海军少尉的阶级,加入军方在哈佛大学展开的哈佛一型计划,在霍华德·艾肯手下工作,成为在这台电脑上第一个专职程序员。

为了节省硬件成本,格蕾丝·霍珀在哈佛一型电脑上,决定以6位数字来存储时间,即年、月、日各两位。这个习惯被COBOL继承,之后传播到其他编程语言及操作系统中,这也是日后2000年问题危机的起源。

1945年,盟军胜利,第二次世界大战结束。格蕾丝·霍珀辞去瓦萨学院的教职,留在哈佛大学,继续研究程序开发。

1949年,进入埃克特-莫齐利电脑公司英语Eckert–Mauchly Computer Corporation,担任资深数学家,开发通用自动电脑1号。1950年,雷明顿兰德公司并购了埃克特-莫奇莱电脑公司,但格蕾丝·霍珀仍然继续在这边开发通用自动电脑1号。

通用自动电脑1号原本的设计目的,是用来作单纯数值运算,但格蕾丝·霍珀发觉这台机器的能耐不止于此。当时程序是直接以机器代码方式撰写,她认为可以在通用自动电脑1号上面开发程序,使人们以接近英文写作的方式来写出程序。她提出开发高级编程语言的想法,自行着手研究,并四处演讲,寻求经费与支持。1951年至1952年间,格蕾丝·霍珀在通用自动电脑1号上开发出第一套编译器A-0 系统,能将程序原始码编译为机器代码。之后又接续开发了A-1A-2

1954年,格蕾丝·霍珀被任命为自动程序部门的经理。她领导她的部门成员,开发出编程语言MATH-MATIC英语MATH-MATICFLOW-MATIC英语FLOW-MATIC。海军采用了FLOW-MATIC,但因为海军旗下的各公司自行发展编译器,使得程序出现不兼容。格蕾丝·霍珀开发了一套程序Validation,用来确认程序是不是用同一套编译器来编译的,以确保程序运作正常。

1959年,为了解决编译器不一致的问题,在五角大楼的推动下,军方与民间专家召开了美国数据系统语言协会英语CODASYL,由格蕾丝·霍珀担任首席技术顾问。在这两天的会议中通过了新的编程语言标准,这就是COBOL的由来。COBOL主要采用FLOW-MATIC英语FLOW-MATIC的语法,但同时也由IBM发展的COMTRAN英语COMTRAN语言中采用了一些新的想法。因为COBOL大幅借用了格蕾丝·霍珀的原始设计,所以她也被视为是“COBOL 之母”。

1967年至1977年间,美国海军资讯系统计划办公室所属的美国海军编程语言小组,由格蕾丝·霍珀担任经理职位。她开发了COBOL验证软件与编译器,成为美国海军COBOL标准化程序的一部分。

1970年代,格蕾丝·霍珀提出计划,劝告美国国防部放弃原本集中化的大型中央电脑系统,改成使用许多分布式的小型电脑,电脑与电脑之间以网络链接。小型电脑连上网络之后,就可以存取在网络上共同的数据库。为了保证安全性,她实现了测试电脑系统以及它各个组件的测试标准,多数是针对早期的编程语言,如FORTRANCOBOL。在1980年代,格蕾丝·霍珀提出的测试标准,成为美国国家标准技术研究所采用的默认标准。

1966年,格蕾丝·霍珀年届60岁,升任海军中校。但因为到达美国军方的服役年龄上限,格蕾丝·霍珀依法退休。1967年,在退伍六个月后,因为美国海军部发现他们无法处理那些程序,紧急召回了格蕾丝·霍珀,改变原有的规章,让她重新入伍。1971年,格蕾丝·霍珀再度退休,但在1972年,美国军方再度召回格蕾丝·霍珀。在1973年,在艾尔墨·朱瓦特英语Elmo Zumwalt将军的提名下,她升任海军上校

1983年,在美国众议院的提议下,美国总统里根通过特别命令,任命格蕾丝·霍珀为海军准将。众议院特别批准让她延长服役年限,继续参与军方计划。1986年8月14日,格蕾丝·霍珀正式退役,成为美国退伍年纪最大的军人。

在从军方退役之后,格蕾丝·霍珀担任迪吉多公司资深顾问,一直到她1992年过世为止。

家庭

1930年,与文森·霍珀(Vincent Hopper)结婚。文森·霍珀后来成为纽约大学教授。1945年,两人离婚。格蕾丝·霍珀之后未曾再婚,仍然保持冠夫姓

1976年,文森·霍珀病逝。

轶事

1947年9月9日,格蕾丝·霍珀的同袍在哈佛二型电脑内发现了第一只真正的虫子。[1] 当时哈佛二型老是出错,大家仔细检查程序仍找不出错误,最后才发现原来是一只飞蛾意外飞入电脑内部的继电器而造成短路(如图所示)。他们把这只飞蛾移除后便成功让电脑正常运作,并在日记本中记录下了这一事件。“虫子”(bug,程序错误)很早以前就用来比喻机器中的瑕疵,经此事件后,才正式成为计算机程序调试的专门用语。现在在华盛顿美国历史国家博物馆中还可以看到日志本中的飞蛾残骸。[1]

 
第一次被发现的导致电脑错误的飞蛾,也是第一个电脑程序错误

名言

霍珀留下许多名言。

当她开始自行开发编译器时,并没有得到高层的许可。她说:

霍珀对年轻人说:

脚注

  1. ^ Amazing Grace的典故来自于基督教圣诗《奇异恩典

参考文献

  1. ^ 1.0 1.1 Log Book With Computer Bug. The National Museum of American History. [2015-02-02]. (原始内容存档于2017-03-23) (英语).