(本文转自51CTO,原文地址:http://developer.51cto.com/art/200912/171577.htm)

编者按: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上编程时体会到编码的效率和执行效率的 不平衡。

基于这些想法,1952年,在斯佩里·兰德公司兼任系统工程师时,她率先研制出世界上第一个编译程序A-O,能够将类似英语的符号代码转换成计算机 能够识别的机器指令,并发表了第一篇关于编译器的论文。到了50年代中期,她又开发出Flow-Matic语言,这是第一个英语数据处理的编译程序,也是 第一个运用词语的计算机语言。后来,Flow-mafic被吸收进COBOL这个广为使用的商业计算机语言,为COBOL高级语言诞生创造了基础。

COBOL语言

1959年5月,在五角大楼支持下,她领导着一个工作委员会,成功地研制出第一个商用编程语言COBOL。

COBOL是一种面向数据处理的、面向文件的、面向过程(POL)的高级编程语言,是一种功能很强而又极为冗长的语言。适合于具有循环处理周期的环 境(例如打印工资支票)以及数据操纵量相当大的环境。COBOL主要应用于商业数据处理领域,对各种类型的数据进行 收集、存储、传送、分类、排序、计算及打印报表、输出图象是它的强项。经过40多年的不断修改、丰富完善和标准化,COBOL已发展为多种版本的庞大语 言,在财会工作、统计报表、计划编制、情报检索、人事管理等数据管理及商业数据处理领域,都有着广泛的应用。

COBOL语言最重要的特征是语法与英文很接近,可以让不懂电脑的人也能看懂程序;编译器软件只需做少许修改,就能运行于任何类型的电脑。COBOL将程 序和数据截然分开,因此,如果程序员要改变程序,他只需要改变前面编写的程序部分,不必全改。这种语言有显著的文件处理能力,它支持顺序文件和直接存取文件,特别适用于管理存储在磁带或磁盘上的大量数据。Grace博士的COBOL语言是高级程序设计语言的第一步,定义了高级语言的雏形。

当时,五角大楼的专家害怕这种语言的命运不会太长久,特地为它制作了一块小小的墓碑。然而,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发现者,编译语言创始人和现代高级程序设计语言的奠基人。


《优雅人生:格雷斯·霍珀和信息时代的创新(计算机程序之母Grace Hopper的传奇人生)》

样章试读 :http://www.china-pub.com/193728

Grace Hopper:编译语言之母、千年虫制造者、世界第三位程序员(COBOL语言创始人)、海军少将相关推荐

  1. 世界上第一位程序员是位美女——AdaLovelace【有图为证】

    AdaLovelace画像   仙女一般吧.... 简介: 阿达·奥古斯塔,19世纪诗人拜伦的女儿,数学家.穿孔机程序创始人,建立了循环和子程序概念.为计算程序拟定"算法",写作的 ...

  2. 世界上第一位程序员,竟然是诗人拜伦的女儿?

    导读:女神节来了,数据叔终于忍不住要聊一聊这个憋了很久的八卦,世界上第一位程序员,当然也是世界上第一位女程序员--Ada. 作者:数据叔 来源:大数据DT(ID:hzdashuju) 这位女神级的神人 ...

  3. 【历史上的今天】12 月 10 日:世界上第一位程序员诞生;Ada 语言发布;第一人称射击游戏的开拓者

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 12 月 10 日,在 120 年前的今天,瑞典国王和挪威诺贝尔基金会首次颁发了诺贝尔奖.根据诺贝尔 ...

  4. 世界上第一位程序员是女的?

    在程序员这个男多女少的世界里,男女比例的极不均衡让男程序员们自然而然地成为了这个世界的主宰.细数下来,从C语言和Unix系统的创造者Denis和Thompson,到后来的Linux系统之父Linus, ...

  5. 女神节快乐!世界上第一位程序员就是女神

    据说,这是世界上第一位女程序员的择偶标准: 征婚启事 SELECT * FROM 男人们 WHERE (未婚=true or 离异=true) and 同性恋=false and 穷光蛋=false  ...

  6. COBOL语言创始人Grace Hopper:编译语言之母

    COBOL语言创始人Grace Hopper:编译语言之母 时间:2011-08-27 11:37 来源:Internet 作者:Internet 点击: 88次 Grace Hopper对计算机领域 ...

  7. 世界上第一个程序员竟然是女性,难以置信......

    一说到程序员,人们的第一反应可能是–男的! 接着浮现在眼前的程序员标配是:眼镜,双肩包,格子衬衫,牛仔裤,运动鞋- 不难发现,在现代的IT公司里,从事编程工作的女性比例远远低于男性. 细数" ...

  8. 世界上第一个程序员,居然是女神级别的人物?

    ????????关注后回复 "进群" ,拉你进程序员交流群???????? 作者丨水影月 来源丨大飞码字(ID:BigFly1024) 一说到程序员,人们的第一反应可能是--男的! ...

  9. 世界最厉害的14位程序员,你认识几个?

    世界最厉害的14位程序员都有谁?你认识几个呢?排名不分先后. 01 Jon Skeet 个人名望:程序技术问答网站Stack Overflow总排名第一的大神,每月的问答量保持在425个左右. 个人简 ...

最新文章

  1. 乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern)
  2. npm run buil构建后页面白屏_从Npm Script到Webpack,6种常见的前端构建工具对比
  3. android 详解画图,android画图之贝塞尔曲线讲解详解
  4. Linux查看某个端口是否被占用
  5. tableau系列之如何将甘特图做成瀑布图
  6. 合肥.NET俱乐部第二期技术沙龙活动预告
  7. 基于表达式的访问控制
  8. 【剑指offer】_18 数据流中的中位数
  9. 状态机——protothreads
  10. (王道408考研操作系统)第三章内存管理-第一节6-4:非连续分配管理方式之基本分页存储管理之两级页表
  11. C语言编程蛟龙转身,[蓝桥杯][2014年第五届真题]排列序数-题解(C语言代码)
  12. underscore源码剖析之整体架构
  13. ubuntu 文件及子文件夹的权限的查看及修改
  14. Python 对字典循环遍历的两种方式
  15. 如果把钱存入余额宝时,所有人都在受益,那么谁在亏损呢?
  16. pytorch使用说明2
  17. 汇编语言通过WMI获取BIOS、主板、硬盘、CPU、网卡的信息
  18. 服务器维护以后多久刷潮汐护符,魔兽世界怀旧服潮汐护符怎么获得
  19. 【Optimal Path】星门跳跃 链表+SPFA
  20. springboot框架图解

热门文章

  1. java生成随机数,生成唯一hash值
  2. 什么是Spring Cloud
  3. 统计学中z分布、t分布、F分布及χ^2分布
  4. 一个针对小白的蘑菇制作过程(二)
  5. 新的PX8防水等级和IPX8防水等级的区别、IP68和PX8的区别,TUV莱茵防蓝光认证是什么
  6. Pytorch项目打包和部署(1)——理论
  7. java map contains_Java Map containsValue()用法及代码示例
  8. iTutorGroup 20 周年:在线教育的下个时代将由 AI 技术引领
  9. 【css实现 oppo 图标】
  10. 适合 Kubernetes 初学者的一些实战练习(二)