当前位置: 首页 > news >正文

Grace Hopper:编译语言之母/千年虫制造者/世界第三位程序员/COBOL语言创始人/海军少将...

她被称为“计算机程序之母”,“美国海军计算机化之母”;
她作为唯一一位女性与阿兰•图灵、史蒂夫•乔布斯、比尔•盖茨等一同入选“IT界十大最有远见的人才”;
她发现了计算机程序中的第一个Bug,也创造了计算机世界最大的Bug—千年虫(Y2K);
她实现了第一个编译语言和编译器,创造了世界上第一种商业编程语言COBOL;
她就是计算机编程创始人—格雷斯•霍珀(Grace Hopper)!

 

关于Grace Hopper的生平,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的传奇人生)》

China-pub全国首发 ,前100名预订&购买的读者享受65折 优惠!

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

相关文章:

  • 《深入理解计算机系统》英文版6.5折预定!
  • 迅速步入jQuery的殿堂
  • 《jQuery权威指南》
  • 《人月神话》作者Frederick P. Brooks, Jr.大师论设计原本
  • 《企业文化地图》首发仪式圆满落幕
  • 《人月神话》作者Brooks最新力作《设计原本》前500册65折首发,英文版同步发售!
  • 《人月神话》作者Brooks最新力作《设计原本》前500册65折首发,英文版同步发售!...
  • 2011年第1期华章新书书讯:设计原本、深入理解计算机系统、jQuery权威指南
  • 《设计原本》成书始末(BY 高博)
  • Mongo北京大会3月3号召开!报名抢注火爆进行中!(免费)
  • Mongo北京大会3月3号召开!免费报名,抢注火爆进行中!
  • 主题演讲:《中国IT外包新视界— 当中国成为世界第二大经济体 》
  • 主题演讲沙龙:《中国IT外包新视界— 当中国成为世界第二大经济体 》
  • 《设计原本》中英文版最低5.0折团购
  • IBM 100周年之际,IBM 360系统之父 《人月神话》作者Brooks从业60年巅峰之作《设计原本》出版
  • ES6系统学习----从Apollo Client看解构赋值
  • HomeBrew常规使用教程
  • IP路由与转发
  • spring cloud gateway 源码解析(4)跨域问题处理
  • storm drpc实例
  • 仿天猫超市收藏抛物线动画工具库
  • 基于遗传算法的优化问题求解
  • 计算机常识 - 收藏集 - 掘金
  • 排序算法学习笔记
  • 异步
  • 用jQuery怎么做到前后端分离
  • 在electron中实现跨域请求,无需更改服务器端设置
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​queue --- 一个同步的队列类​
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • #微信小程序:微信小程序常见的配置传值
  • $.ajax()参数及用法
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (Git) gitignore基础使用
  • (Java)【深基9.例1】选举学生会
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (转)LINQ之路
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .chm格式文件如何阅读
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET 中 GetProcess 相关方法的性能
  • .net项目IIS、VS 附加进程调试
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛
  • []FET-430SIM508 研究日志 11.3.31
  • [1] 平面(Plane)图形的生成算法
  • [ACTF2020 新生赛]Include
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [Ariticle] 厚黑之道 一 小狐狸听故事