计算机编程第一夫人:耶鲁大学首位数学博士

 

格雷丝·霍珀(Grace Hopper),她是计算机编程的第一夫人。美国海军当时将最新和最先进的导弹驱逐舰,命名为“格雷丝·霍珀”号。人们也将“计算机程序之母”、“美国海军计算机化之母”等名头,给予了这个已在1992年离世的女子。

[[21446]]

在50多年前,当霍珀决定转身时,瓦萨学院的这名数学教授,并不清楚自己会走上怎样一条路。

1941年12月7日,投在珍珠港的炸弹,在美国掀起巨大的波澜,也成了霍珀人生的转折点。这个36岁的女人,决定放弃自己的婚姻和终身教授职位,加入海军。

作为耶鲁大学历史上第一位获得数学博士学位的女性,霍珀在海军后备学校备受重视,如鱼得水地“享受着完美天堂般的时光”。

然而,在1944年毕业时,中尉霍珀原本以为自己会被派往海军附件中心工作,承担破解敌军密码的任务。调令到来后,她发现自己被派到哈佛大学,与一台大型计算机器打交道。

这台高8英尺、宽3英尺、长51英尺、重9445英磅、拥有530英里线路的机器,被官方称为“自动程序控制计算机”。发明它的海军中校艾肯,则称之“马克一代”。

看到海军派来一位女人做副手,艾肯非常失望。他对霍珀的接待,自然也“冷若冰霜”。实验室里的年轻男同事,也不愿坐在女人身旁,他们甚至为了不与霍珀为邻而收买对方。

尽管不大情愿,霍珀还是站到了“马克一代”前面,成为第一台现代计算机的第三个程序员。她的工作,也很快令艾肯和同事们刮目相看。

“我学会了海洋学、所有的扫雷过程、引爆装置、低空爆炸信管、生物医学方面的词汇。”霍珀后来回忆道。

1944年秋天,霍珀和同事在战事压力下,发明了编码系统。在1960年代新技术发明实施以前,这一编码系统“一直统治着计算机领域”。

艾肯也越来越信任自己的副手,他要求霍珀负责为“马克一代”撰写操作指南。1946年春天,霍珀完成了任务。但她发现,自己并不在作者之列,因为荣誉是按级别分配,暂时还没有中尉的份儿。3年后,霍珀又为“马克二代”编写了操作指南,哈佛大学出版社在出版时,依然没将霍珀列入作者名单。

霍珀并没有抱怨。这一年,计算机行业开始使用术语“程序员”。霍珀通过身体力行,解释什么是程序员,程序员该做什么和怎么做。她的事业似乎也风生水起。她曾是第一批成为海军军官的女性,此时她又是第一家新兴商业计算机公司的资深主管。

但在这年11月,霍珀在凌晨3点被捕,罪名是酗酒和妨害社会治安。这个43岁的女人虽然成就斐然,却败给了自己无序的生活,并深深陷入了对酒精的依赖。被监禁在医院接受治疗期间,霍珀甚至思考着如何自杀。她尝试着将自己淹死在河里,但未能成功。

最终在同事和朋友的帮助下,霍珀走出了阴影。1951年10月,她开始利用业余时间从事程序的发明工作,第二年她便编写了第一个编译器,并意识到自动化编程的重要性。在美国计算机协会,霍珀也成为领袖人物,开始担任协会编程委员会和术语委员会会长。

几年前,在为“马克二代”排除故障的过程中,霍珀和同事找到了一个被夹死的飞蛾。她将飞蛾用胶带粘在工作笔记里,并称程序故障为“bug”。这一术语,后来成为计算机专业的专业术语流传至今。

担任会长后,规范术语,形成行业的通用语言,成为霍珀的工作之一。她用“存储”代替“记忆”,用“处理”代替“思考”。这些都成为我们今天耳熟能详的术语。

对霍珀来说,她要做的还不只这些。“我们都希望有一门专门进行数据处理的语言。”她说。为此,1959年5月,美国与计算机相关的重量级人物坐进了同一个房间。

经过一次次投票后,霍珀和她的“构想小组”所发明的程序语言COBOL,经过修改后,被批准成为标准的通用商业编程语言。

有人评价,霍珀他们的发明打破了人与机器交流的障碍,使得计算机编程领域“民主化”,推动了1960年代技术的大众化转型。美国数据管理协会提名她为第一个计算机科学“年度人物”。

在被列入海军后备队退休人员名单后,60岁的霍珀原本以为自己可以开始安享晚年。但她刚离开,海军在执行编程语言时便遇到困难。她不得不再服6个月的现役。后来这个时间延长到20年。1986年,霍珀作为美国海军年纪最大的现役军官退役。在海军界,她赫赫有名。

但在很多地方,人们对她的成就一无所知。直到1983年3月,霍珀在哥伦比亚广播公司的《60分钟》节目里亮相。一位议员看到节目后,立即发起一项提案,呼吁这位杰出女性的贡献应该得到应有的认可。

随后,霍珀上校被任命为海军准将,后来又成为海军少将。这个沉寂了大半生的女人,很快便作为计算机先驱和英雄为公众所知。

格蕾丝工作证明:计算机不仅是数学仪器,当进行数值运算时,它控制运算符号;当进行数据处理时,它控制数据处理符号。她在简化计算机编程方面的工作是计算机普及的重要原因之一。她给人类到来的贡献是不可估量的,让我们记住这位计算机编程的第一夫人吧!

【编辑推荐】

  1. 大学生计算机编程第一人:从楼天城到楼教主
  2. 101条伟大的计算机编程名言
  3. 图说计算机编程简史
  4. 13种最为荒谬但很独特的编程语言
THE END