【51CTO独家特稿】1992年1月1日,美国海军少将,Grace Hopper(葛丽丝·霍普)博士在睡梦中与世长辞。她对计算机领域的贡献不可磨灭,她发现了计算机程序中的第一个Bug,同时也创造了计算机世界最大的Bug——千年虫(Y2K);她实现了第一个编译语言和编译器;创造了世界上第一种商业编程语言COBOL并为之后的高级程序设计语言定义了模型。
1906年,Grace Hopper出生在美国纽约一个中产阶级家庭。Grace的童年是在身为美国海军退役将军的曾祖父身边度过的,那时她常常坐在曾祖父的腿上,抚摸军服上的各种装饰,瞪大眼睛,听老人讲惊险的战斗故事。这些,可能就是她选择海军作为自己终身职业的原因。
Grace在少年时代就才华出众,特别是数学和物理方面表现超群。她在1928年获得美国优等生荣誉,同年,取得了数学物理学士学位。利用奖学金,Grace进入耶鲁大学深造,并在1930年获得数学学士学位,成为耶鲁大学第一位女博士。
第二次世界大战期间,Grace加入军队,在那里,她得以与计算机亲密接触。她幸运地被任命为著名计算机专家霍德·艾肯(H.Aiken)博士的助手,参与Mark Ⅰ计算机的研制。她后来回忆说:“我成了世界上第一台大型数字计算机的第三名程序员。”从此,Grace博士走上了软件大师的成功之路。
Bug发现者和千年虫制造者
Grace博士的主要任务是编写程序,她为MarkⅠ,以及后续机器MarkⅡ、Mark Ⅲ编写出大量软件。在这期间,Grace博士在软件设计领域的第一项重大“发明”,Bug诞生。
1946年,她在发生故障的MarkⅡ计算机的继电器触点里,找到了一只被夹扁的小飞蛾,正是这只小虫子“卡”住了机器的运行。Grace博士顺手将飞蛾夹在工作笔记里,并诙谐地把程序故障称为“Bug”。Bug的意思是“臭虫”,而这一奇怪的称呼,后来演变成计算机行业的专业术语。虽然现代电脑再也不可能夹扁任何飞蛾,大家还是习惯地把排除程序故障叫做Debug(除虫)。
那时的硬件极其昂贵,为了节省内存空间,Grace博士开始采用6位数字来储存日期,即年、月、日各两位。随着COBOL语言的影响日愈扩大,这一习惯做法被人们沿用下来,到2000年前,居然变成了危害巨大的“千年虫”,这当然是Grace博士始料不及的事。
编译语言之母
二战结束后,带着美国海军的嘉奖令,Grace博士陆续创造了计算机软件领域一些列的丰功伟绩。
1949年,她加盟第一台电子计算机ENIAC发明人莫契利和埃克特创办的公司,开始第一次使用“简短指令代码“ 为世界上第一台储存程序的商业电脑UNIVAC编写多软件。作为世界上第三位程序员,Grace博士在UNIVAC上编程时体会到编码的效率和执行效率的不平衡。
按照她的想法,程序员的工作应该不是代码工人,而是高水平的脑力劳动。程序员应该通过自己的知识提高编码的效率,简单来说,就是把一些繁重反复的工作交给电脑自己去完成。#p#
基于这些想法,1952年,在斯佩里·兰德公司兼任系统工程师时,她率先研制出世界上第一个编译程序A-O,能够将类似英语的符号代码转换成计算机能够识别的机器指令,并发表了第一篇关于编译器的论文。到了50年代中期,她又开发出Flow-Matic语言,这是第一个英语数据处理的编译程序,也是第一个运用词语的计算机语言。后来,Flow-mafic被吸收进COBOL这个广为使用的商业计算机语言,为COBOL高级语言诞生创造了基础。
COBOL语言
1959年5月,在五角大楼支持下,她领导着一个工作委员会,成功地研制出第一个商用编程语言COBOL。
COBOL是一种面向数据处理的、面向文件的、面向过程(POL)的高级编程语言,是一种功能很强而又极为冗长的语言。适合于具有循环处理周期的环境(例如打印工资支票)以及数据操纵量相当大的环境。COBOL主要应用于商业数据处理领域,对各种类型的数据进行 收集、存储、传送、分类、排序、计算及打印报表、输出图象是它的强项。经过40多年的不断修改、丰富完善和标准化,COBOL已发展为多种版本的庞大语言,在财会工作、统计报表、计划编制、情报检索、人事管理等数据管理及商业数据处理领域,都有着广泛的应用。
COBOL语言最重要的特征是语法与英文很接近,可以让不懂电脑的人也能看懂程序;编译器软件只需做少许修改,就能运行于任何类型的电脑。COBOL将程序和数据截然分开,因此,如果程序员要改变程序,他只需要改变前面编写的程序部分,不必全改。这种语言有显著的文件处理能力,它支持顺序文件和直接存取文件,特别适用于管理存储在磁带或磁盘上的大量数据。Grace博士的COBOL语言是高级程序设计语言的第一步,定义了高级语言的雏形。
#T#当时,五角大楼的专家害怕这种语言的命运不会太长久,特地为它制作了一块小小的墓碑。然而,COBOL语言不但留存下来,还被广泛使用。1963年,美国国家标准局将它进行了标准化。用COBOL写作的软件,要比其他语言多得多,Grace博士也因此被誉为计算机语言领域的先驱人物。到今年(2009年),COBOL语言已经50岁,走过了半个世纪,依然被应用在软件开发领域。
海军少将
Grace博士生活在一个充满变化的时代,为了时刻激励自己创新意识,她在办公室墙上挂了一个逆时针转动的大钟。她也经常告诫青年人,不必害怕变化,必须勇于创新。她坚信,现在的青年会比他们这辈人更勇敢地面对问题。美国海军部门为了照顾她的身体,曾多次动员她退休,但每次都不得不将她重新请回来,因为离开了这位博学多才的软件大师,许多事情根本无法运转。
直到1986年,已获得海军少将军衔的霍波,才Grace博士80岁高龄从海军退休,继续担任DEC公司资深顾问。在波士顿,以美国军队的最高规格为她举行了退休仪式。在告别演说中,Grace博士关注着未来:“我们年青的人民是属于未来的,我们必须为他们创造未来。”
为表彰她对美国海军的贡献,有一艘驱逐舰被命名为“格蕾丝号”;加利福尼亚海军数据处理中心也改称“霍波服务Grace博士”。霍波一生Grace博士得许多殊荣,如计算机科学年度人物奖、国家技术奖等、海军功勋服务奖、国防部卓越服务奖等等。1971年,为了纪念现代数字计算机诞生25周年,美国计算机学会特别设立了“格蕾丝·霍波奖”Grace博士发给当年最优秀的30岁以下的青年计算机工作者。因此,“霍波奖”Grace博士全球电脑界“少年英雄”的标志。
Grace Hopper博士珍惜生命,她希望能够活到94岁,新世纪来临的那一天(上世纪80年代末,千年虫问题还没有被发现,如果她想到问题的存在,一定会亲自解决)。她是计算机界崇拜的软件大师,事实上,她对计算机领域的贡献不只是COBOL语言,Bug和千年虫,更重要的是,她开创了程序语言的编译时代,为现代编程语言提供了出行,解放了程序员的生产力,为计算机软件打下了告诉发展的理论基础和实例模型。
请记住Grace Hopper博士,美国海军上将,世界第三位程序员,Bug发现者,编译语言创始人和现代高级程序设计语言的奠基人。