电脑语言先驱格蕾丝·赫伯将军

格蕾丝·赫伯(Grace Hopper)是第一位美国女将军,也曾是美军在役年龄最大的军人,她还是早期电脑科学家及程序员之一,被称为电脑编程语言“COBOL 之母”;此外电脑中最常用的术语“bug”也与她有关。

赫伯1906年12月9日生于纽约市,1992年1月1日去世,终年85岁。赫伯从小就有强烈的求知欲,7岁时因为对闹钟如何发声感兴趣,就拆了7个闹钟探究竟。22岁时大学毕业,24岁时获得耶鲁大学的硕士学位、28岁时获得耶鲁大学数学博士学位。赫伯从1931年开始在母校瓦萨学院(Vassar College)教书,1941年升为副教授。

二战时,赫伯加入了海军,并被分配到海军船舶局(Bureau of Ships)设在哈佛大学的计算项目实验室工作,军衔中尉。她在那里参加了IBM第一台全自动数位电脑马克一号(Mark I)的运作工作,马克一号被认为是第一部多用途型计算机。IBM给它起的名字是全自动化循序控制计算机(Automatic Sequence Controlled Calculator,缩写ASCC),而马克一号是它的用户哈佛大学起的名字。赫伯在哈佛大学参与马克一号的工作,为她后来在电脑领域取得的成就打下了坚实的基础。

二战结束后赫伯继续留在海军服役,1946年退役(这是她第一次退役),并一直在哈佛大学计算实验室工作,因为对计算机的兴趣,她辞去了瓦萨学院的教职,转而在哈佛大学的海军合同项目下担任研究员。

赫伯记载的第一列电脑bug日志(照片:公有领域)
赫伯记载的第一列电脑bug日志(照片:公有领域)

1947年9月9日赫伯与同事在哈佛大学运作马克二号计算机时,计算运作一直不正常,时断时续,经过全力检查,发现在计算机的中继电器触点之间有一个虫子(bug,实际是一个蛾子),因为这个虫子的关系造成计算机出现问题,赫伯将此事记录了下来,她是第一个记录虫子导致计算机出现问题的人。此后bug也就成为计算机程序漏洞、缺陷等的通用代名词。

1949年赫伯成为埃克特 – 莫齐利公司(Eckert-Mauchly)的高级数学家,并加入了通用自动计算机(UNIVAC I)的研发,通用自动计算机是第一台商用电子计算机。赫伯在通用自动计算机的研发中,负责将数学代码编译成电脑语言,成为这方面的先驱。

赫伯与同事一起运作通用自动计算机(照片:Smithsonian Institution)
赫伯与同事一起运作通用自动计算机(照片:Smithsonian Institution)

1959年来自政府及计算机行业的专家举行了两天的数据系统语言会议(Conference on Data Systems Languages),赫伯担任该会议委员会的技术顾问。会议委员会制定了一种新的编译计算机语言“通用商业语言”(Common Business Oriented Language,简称COBOL),这是最早的计算机高阶编程语言,也是最早实施标准化的计算机语言之一。“通用商业语言”的制定在许多方面参考了赫伯早期的语言编程方法,因此,赫伯被称为“通用商业语言之母”。

1967年8月赫伯被召回现役,1971年再次退役,但不久海军又于1972年征召她重返海军,这是赫伯第三次加入海军。从1967年到1977年,赫伯担任海军信息系统规划办公室海军编程语言组主任,她为通用商业语言及其编译器开发了验证软件,作为通用商业语言标准化的一部分。1983年赫伯升为海军一星准将,成为美军第一位女将军;1985年升为海军二星少将。1986年8月14日第三次从海军退休,时年79岁,是当时退役年龄最大的军人。

赫伯退役典礼(照片:美联社)
赫伯退役典礼(照片:美联社)

赫伯于1992年1月1日去世,被以军人的荣誉安葬在阿灵顿国家公墓。由于她成就广泛,作为一名计算机领域的先锋科学家和她在海军的长期服役,赫伯被称为“奇异”的恩典(Amazing Grace,奇异恩典是著名的基督教赞歌,此处一语双关)。

赫伯一生得奖无数,包括公民最高荣誉的总统自由勋章(Presidential Medal of Freedom),同时获得多个大学的博士荣誉学位。为了表彰赫伯的成就,耶鲁大学将卡尔霍恩学院改名为赫伯学院,海军也将一艘伯克级导弹驱逐舰命名为赫伯舰(USS Hopper)。

导弹驱逐舰赫伯号(照片:海军)
导弹驱逐舰赫伯号(照片:海军)