欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  生活百科

格蕾丝·赫柏:发现世界上第一个bug

程序员文章站 2023-08-21 16:09:14
对万千程序猿来说,在这个世界上如果有比写程序更痛苦的事情,那一定是亲手找出自己编写的程序中的bug(漏洞)。几十年前,也有一位女性深感写程序的痛苦,然后她就设计了一套全新的计算机语言,把代码从... [详细]...

  对万千程序猿来说,在这个世界上如果有比写程序更痛苦的事情,那一定是亲手找出自己编写的程序中的bug(漏洞)。

  几十年前,也有一位女性深感写程序的痛苦,然后她就设计了一套全新的计算机语言,把代码从“01001….”变成了现在我们起码看得懂的样子,现在世界上70%的数据还在用她发明的语言进行处理。

  对了,世界上第一只bug也是她顺手找出并命名的。

  因为她写的程序太高超,美国海军部搞不定,只好两次把已经退休的她请回来,还为了她把法定退休年龄延长了5年。

  耶鲁大学第一位女数学博士、国防部杰出服务勋章这些名头对她来说都是小成就,过世后奥巴马还追授她总统*勋章,这是美国平民能获得的最高荣誉了。

  如果不是她,程序员大概会比现在更爱格子衫,抱更久的电脑,掉更多的头发,感叹更多代码的无常,并且短命个30年。

格蕾丝·赫柏:发现世界上第一个bug

  这个人,就是我们今天要介绍的主人公,与“阿兰·图灵、史蒂夫·乔布斯、比尔·盖茨”等一同入选“it界十大最有远见的人才”的唯一一位女性——格蕾丝·赫柏。

  1906年,赫柏出生在美国纽约。童年的赫柏,展现出了不同于一般小女孩的爱好:爬树、游泳、划船、捉迷藏,热衷于一切动来动去上蹿下跳的活动。

  七岁时,为了弄懂“钟为什么朝一个方向转”,赫柏把家里整整七台钟拆了个七零八落。

  老是拆东西的小赫柏于是也总被罚,母亲的惩罚很特别——刺绣。这个别致的惩罚培养了赫柏宜动宜静的好习惯。

  除此之外,和数学界诸多“大牛”的母亲一样,赫柏的母亲也是一个喜欢数学的家庭妇女,她在赫柏的数学启蒙上发挥了非常重要的作用。

  从上学起,赫柏在数学、物理方面都异常出色,一路顺顺利利直到16岁参加高考,却因为偏科太严重,拉丁文考试不及格,没能考上大学。

  复读一年后,赫柏考上韦莎学院。这所大学在2012年《福布斯》公布的美国最好大学中排名第20位,新闻报道更是将它评价为最值得选择的大学。

  毕业时,赫柏不仅同时获得数学、物理学位,还获得美国优等生的荣誉,留校担任教师的她被聘为学院副教授。

  利用获得的奖学金,赫柏再次考进耶鲁大学深造,2年后取得数学硕士学位,继而又攻读博士学位,成为了耶鲁大学历史上第一位女数学博士。

格蕾丝·赫柏:发现世界上第一个bug

  世俗眼中最美好青春的年华,赫柏都花在了学问的深造上。

  毕业后,赫柏回到韦莎学院教书。

  但人生总是会出现各种意想不到的转折点,对赫柏来说,这个拐点是二战。

  赫柏的曾祖父是一名海军将军。1939年二战爆发时,满怀爱国热情的赫柏也坚决要求加入海军。

  参军要经过考试,尽管赫柏身高体重都不合格,她死磨硬缠硬是说服了考官,让自己进入海军军校学习,并以第一名的成绩毕业。

  毕业的赫柏因为出色的数学背景,被分配到美国船舶局位于哈佛大学的战时科研中心。

  彼时,军方正在开展世界第一台大型数字计算机的研究项目——马克一号。赫柏被任命为著名计算机专家霍德艾肯博士的助手,成为这个项目的第三名程序员。

  在这儿,赫柏开启了自己程序员的生涯。

  她的主要任务,就是为马克一号,还有接下来的马克二号,马克三号编写程序与软件。

  一天,计算机发生故障,赫柏经过排查,在计算机的继电器触电里,找到了一只被夹扁的小飞蛾,这只小虫子卡住了机器的运行,赫柏顺手将飞蛾夹在工作笔记里,并诙谐的把程序故障称为“bug”。

  这就是我们今天最爱说的“bug”的由来。它的意思,和原身一致,真就是“一只虫”。

  这一称呼后来演变成表达缺陷漏洞的计算机专业术语,人们习惯地把排除程序故障叫做“debug”(除虫)。

  当时的计算机只能识别机器语言——由二进制代码1和0表示的特定指令集合,而且不同型号的计算机使用的机器语言不一样,每次使用新的计算机都要程序员背一套新的指令,想想就令人绝望。

  再说了,这些全是由“01001001010101010000010111100……”的观感性真的奇差,非常非常容易出错,程序员们检查起来更是万念俱灰。

  眼看头发越掉越多的赫柏想要改变程序员的工作处境,维护大家身心健康。她决心开发一套高级编程语言,让人们能够以接近英语写作的方式来编写程序。

  那么问题来了,如何才能让计算机读懂英文?

  1949年,赫柏加盟了第一台电子计算机发明人莫契利和艾科特创办的公司,为世界上第一台储存程序的商业电脑编写了许多软件,在这台计算机上,她开始尝试着用简短的指令代码。

  1952年,赫柏终于率先研制出世界上第一个编译程序a—o,能够将类似英语的符号代码转换成计算机能够识别的机器指令。不要小看这个编译程序,它有着电子词典的翻译功能,能够将我们的语言翻译给计算机。

  翻译器有了,但目前程序员敲打的符号代码只是类似英文,赫柏觉得有必要设计一套更简单的机器语言。

  5年后,flow—matic语言问世了,这是第一个使用词语的计算机语言。这个时候,*也感觉到这将是一件造福国家的事儿,于是在五角大楼的支持下,赫柏领导着一个工作委员会。2年后,基于flow语言,又成功研制出第一个商用编程语言cobol。

  这是赫柏发明前进的一小步,却是人类计算机前进的一大步。

  cobol语言最重要的特征,就是语法都和英文接近了,不懂电脑的人也能看程序,编译器软件只做少许修改,就能运行于任何类型的电脑。

  不过,再好的程序员也都有出bug的时候,正因为cobol语言逐渐的广泛使用,赫柏当初的一个小bug成为了“危害巨大的千年虫”。

  50年代初,计算机非常昂贵,为了节省空间,赫柏采用六位数来储存日期,即年月日各两位,这一习惯被沿用,然而,到2000年,问题出现了。

  简单来说,2000年1月1日的表示是1/1/00,但是1900年1月1日的表示也是1/1/00,所以在进入千禧年时,因为计算机里时间的错误,让很多系统、软件、程序完全乱套。

格蕾丝·赫柏:发现世界上第一个bug

  这些也是后话了。

  尽管曾在很多公司供职,赫柏都是加盟、兼职,作为服役的军人,她的大东家还是美国海军部。

  1966年,赫柏60岁,到了美国军方服役的年龄上限。只是回家才休息半年,赫柏就被召回了。因为她一走,美国海军部就发现有大量他们无法处理的程序,他们为此赶快修改了原有规章,将退休年龄延长到65岁。

  又工作了五年的赫柏于1971年“第二次退休”。这次比上次好,海军部撑了一年,1972年,又把赫柏“召唤”了回来。

  最后,众议院特别批准让赫柏延长服役年限,参与军方计划。所以,本该60岁退休的赫柏,直到1986年才终于“成功”退役,79岁的她成了美国退伍时年级最大的军人。

  为表彰赫柏对美国海军的贡献,美国海军将一艘驱逐舰命名为“格蕾丝号”,加利福尼亚数据处理中心,也改称“赫柏服务中心”。

  1992年1月1日,格蕾丝·赫柏与世长辞。

  她将一生献给工作,献给国家,也献给了人类。

  cobol语言目前仍被大范围使用,世界上70%的数据都用它处理,500强中就有492家使用,据称用它书写的程序超过了2000亿行,并且以每年大约50亿行的速度在增长。

  多少人因为她,才看懂了代码,爱上了代码,继而在这个电子时代创造出一个个的进步与奇迹。

  世界的脚步,伴着她,走向一个新的时代。

  2016年,赫柏被奥巴马追授总统*勋章,这也是,这个国家的平民所能获得的最高荣誉。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。