::: {#c9f8 .section .section .section—body .section—first .section—last} ::: section-divider
:::
::: section-content ::: {.section-inner .sectionLayout—insetColumn}
015.Debug之母------葛丽丝·穆雷·霍普(Grace Murray Hopper) {#30a4 .graf .graf—h3 .graf—leading .graf—title name=“30a4”}
今天要介绍的这位厉害了,她是最早的一批程序员,被称为Debug之母,她就是葛丽丝·穆雷·霍普(Grace Murray Hopper,1906年12月9日-1992年1月1日)。霍普生于美国纽约州纽约市,美国海军准将(Rear admiral)及计算机科学家,世界最早一批的程序员之一,也是最早的女性程序员之一。她是Harvard Mark I上第一个专职程序员,创造了现代第一个编译器A-0 系统,以及第一个高级商用计算机程序语言”COBOL”,被誉为”COBOL 之母”。著名的计算机术语”Debug”(调试排错)便是她在受到从电脑中驱除蛾子的启发而开始使用的,于是她也被冠以”Debug 之母”的称号。她也是Y2K危机的创造者。她培育出许多编程语言专家,被人称为”不可思议的葛丽丝(Amazing Grace)”。
她是美国第一个获得准将头衔的女性,海军驱逐舰USS Hopper (DDG-70)以她来命名。配置于NERSC(国家能源研究科学技术机中心)的超级电脑Cray XE6,便是以Hopper命名,以表彰她的贡献。
霍普出生于纽约市,进大学之前,就读于私立Wardlaw-Hartridge学校。1928年大学毕业于瓦萨学院(Vassar College)并取得数学与物理双学士学位,在校期间也是美国资优学生联谊会(Phi-Beta-Kappa【ΦBK】Society)成员。大学毕业后随即进入耶鲁大学研究所就读,于1930年取得硕士学位,1934年取得数学博士学位。她的论文为《化约算数等式的新标准》(A new Criterion for Reducibility of Algebraic Equations)在期刊New Types of Irreducibility Criteria正式发表。霍普取得博士学位后,回到瓦萨学院任教。
1943年,第二次世界大战期间,她志愿加入美国海军后备军团,在WAVES服役。她体重过轻,不符合军方标准,但因战时人力短缺,军方仍然决定让她入伍。
1944年7月,她从位于史密斯学院的预备军官学校毕业。以海军少尉的阶级,加入军方在哈佛大学展开的Harvard Mark I计划,在霍华德·艾肯手下工作,成为在这台电脑上第一个专职程序员。9月9日,Harvard Mark II因为不明原因停止运作,葛丽丝·霍普经过仔细检查后,发现是一只飞蛾飞进继电器,造成短路。她将飞蛾的残骸贴在研发记录薄上,说她发现一个bug,造成电脑停止运作。此后,在这个部门中,凡是任何引起电脑停止运作的错误,都被称为”bug”,找出错误则称为”debug”,这形成日后电脑程式错误及除错的名称起源。
为了节省硬件成本,葛丽丝·霍普在Harvard Mark I上,决定以6位数字来储存时间,即年、月、日各两位。这个习惯被COBOL继承,之后传播到其他编程语言及操作系统中,这也是日后Y2K危机的最早起源。
1945年,第二次世界大战结束。葛丽丝·霍普辞去瓦萨学院的教职,留在哈佛大学,继续研究程式开发。
1949年,进入埃克特-莫奇莱电脑公司(Eckert—Mauchly Computer)公司,担任资深数学家,开发UNIVAC I。1950年,雷明顿兰德公司并购了埃克特-莫奇莱电脑公司,但葛丽丝·霍普仍然继续在这边开发UNIVAC I。
UNIVAC I原本的设计目的,是用来作单纯数值运算,但葛丽丝·霍普发觉这台机器的能耐不止于此。当时程式是直接以机器码方式撰写,她认为可以在UNIVAC I上面开发程式,使人们以接近英文写作的方式来写出程式。她提出开发高阶编程语言的想法,自行着手研究,并四处演讲,寻求经费与支持。1951年至1952年间,葛丽丝·霍普在UNIVAC I上开发出第一套编译器A-0 系统,能将程式源代码编译为机器码。之后又接续开发了A-1与A-2。
1954年,葛丽丝·霍普被任命为自动程式部门的经理。她领导她的部门成员,开发出编程语言MATH-MATIC与FLOW-MATIC。海军采用了FLOW-MATIC,但因为海军旗下的各公司自行发展编译器,使得程式出现不相容。葛丽丝·霍普开发了一套程式Validation,用来确认程式是不是用同一套编译器来编译的,以确保程式运作正常。
1959年,为了解决编译器不一致的问题,在五角大厦的推动下,军方与民间专家召开了CODASYL,由葛丽丝·霍普担任首席技术顾问。在这两天的会议中通过了新的编程语言标准,这就是COBOL的由来。COBOL主要采用FLOW-MATIC的语法,但同时也由IBM发展的COMTRAN语言中采用了一些新的想法。因为COBOL大幅借用了葛丽丝·霍普的原始设计,因为她也被视为是”COBOL 之母”。
1967年至1977年间,美国海军资讯系统计划办公室所属的美国海军编程语言小组,由葛丽丝·霍普担任经理职位。她开发了COBOL验证软件与编译器,成为美国海军COBOL标准化程式的一部分。
1970年代,葛丽丝·霍普提出计划,劝告美国国防部放弃原本集中化的大型中央电脑系统,改成使用许多分散式的小型电脑,电脑与电脑之间以网络连结。小型电脑连上网络之后,就可以存取在网络上共同的数据库。为了保证安全性,她实作了测试电脑系统以及它各个元件的测试标准,多数是针对早期的编程语言,如FORTRAN与COBOL。在1980年代,葛丽丝·霍普提出的测试标准,成为美国国家标准技术研究所采用的预设标准。
1966年,葛丽丝·霍普年届60岁,升任海军中校(Commander)。但因为到达美国军方的服役年龄上限,葛丽丝·霍普依法退休。1967年,在退伍六个月后,因为美国海军部发现他们无法处理那些程式,紧急召回了葛丽丝·霍普,改变原有的规章,让她重新入伍。1971年,葛丽丝·霍普再度退休,但在1972年,美国军方再度召回葛丽丝·霍普。在1973年,在Elmo Zumwalt将军的提名下,她升任海军上校(Captain)。
1983年,在美国众议院的提议下,美国总统雷根通过特别命令,任命葛丽丝·霍普为海军准将。众议院特别批准让她延长服役年限,继续参与军方计划。1986年8月14日,葛丽丝·霍普正式退役,成为美国退伍年纪最大的军人。
在从军方退役之后,葛丽丝·霍普担任迪吉多公司资深顾问,一直到她1992年过世为止。
2016.1.15 ::: ::: :::