数学史 · 中文镜像

数学家传记

约翰·巴科斯John Backus

出生
1924年12月3日 美国宾夕法尼亚州费城
逝世
2007年3月17日 美国俄勒冈州杰克逊县阿什兰

约翰·巴科斯是一位美国数学家,以发明FORTRAN和用于描述编程语言语法的BNF记号而闻名。

完整传记

约翰·巴科斯的父母是Cecil Franklin Backus(1885-1966)和Elizabeth Warner Edsall(1904-1933)。Cecil 巴科斯于1906年从弗吉尼亚大学获得化学学位,先后在E I Dupont De Nemours Powder Company的东部实验室工作,后迁至特拉华州威尔明顿的Atlas Powder Company。他于1920年至1922年间在Gillespie & Meeds投资银行工作。该公司后来成为Laird, Bissell & Meeds,他于1923年至1940年间担任合伙人。弗瑞兹·约翰的母亲Elizabeth Edsall是威尔明顿一位医生的女儿。Cecil和Elizabeth于1921年5月28日在特拉华州纽卡斯尔县威尔明顿结婚。他们育有三个孩子:Anne Hall Backus(生于1922年3月25日)、约翰 Warner 巴科斯(本传记的主人公)和小Cecil Franklin Backus。家境富裕,在Cecil和Elizabeth Backus结婚的那些年里,他们收集了高品质的美国古董家具。约翰的母亲Elizabeth去世后,他的父亲于1935年6月12日在特拉华州纽卡斯尔县威尔明顿与Alice Beaver Candee(1901-1992)结婚。约翰早年在特拉华州威尔明顿度过,随后就读于宾夕法尼亚州波茨敦的希尔学校。这所家庭寄宿学校成立于1851年,备受推崇,由校长James I Wendell管理。巴科斯于1942年从希尔学校毕业,尽管据他自述,他在那里并未太认真对待学业[5]:-

我每年都不及格。我从不学习。我讨厌学习。我只是在混日子。这带来了一个令人愉快的后果:每年我都去新罕布什尔州的暑期学校,在那里我整个夏天都在航海,过得很愉快。

巴科斯应父亲的要求进入弗吉尼亚大学学习化学。在第一学期,他喜欢化学的理论部分,但非常不喜欢实验室工作。然而,他喜欢社交生活,每个能找到的派对他都会参加。他在2004年写道:-

在弗吉尼亚大学,所有人似乎都在喝得烂醉。

然而,他并不比在学校时更用功,第二个学期他只注册了一门课——一门音乐欣赏课。这不是弗吉尼亚大学对学生的期望,1943年,他的学业被终止。由于美国在第二次世界大战中扮演重要角色,那一年他参军了。他被授予下士军衔,并在佐治亚州斯图尔特堡[2]负责一个高射炮班组:-

我只在那里待了几个月,然后我被选中参加陆军专业训练。接着我去了阿拉巴马州的一个小地方接受分类。

当他参加这次陆军能力倾向测试时,他的表现使他被送到匹兹堡大学参加工程预科课程[2]:-

然后我去了匹兹堡大学,我非常喜欢那里,因为我本应学习的所有这些东西我已经学过了。所以我在那里度过了很多时间。有一个叫“匹兹堡剧场”的地方,实际上是个酒吧。一个非常友好的地方。

在军队进行了一次医疗能力倾向测试后,他现在被送到哈弗福德学院接受医学预科培训。后来他想到,这可能救了他的命,因为他在匹兹堡的许多朋友被派往欧洲在西线服役。1944年12月德军发动的主要攻势——突出部战役,造成了战争中美国伤亡人数最多的一次,巴科斯的许多朋友阵亡。在哈弗福德学院待了一段时间后,巴科斯被送到大西洋城的一家医院,在那里他在治疗头部创伤的神经外科病房工作[2]:-

于是我在大西洋城待了一段时间,在这家医院每天工作12小时,住在木板路旁的⟦N1⟧酒店。

奇怪的是,人们注意到他头上有一个大肿块,结果发现他长了一个骨瘤。在手术切除肿瘤后,他的头部装上了一块金属板。有一段时间他正在康复,没有职责,能够享受大西洋城的夜生活。此时医学训练对巴科斯来说似乎是正确的方向,但在花与第五大道医院(现称纽约医学院)读了九个月医学院后,他也放弃了[5]:-

我讨厌它。他们不喜欢在医学院里思考。他们死记硬背——这就是他们想让你做的全部。你绝不能思考。

又一次在不知道自己该走哪个方向的情况下,他在纽约东71街租了一套公寓。之前植入他颅骨的那块金属板出了问题,于是他在斯塔滕岛的一家医院换上了一块曲率正确的新板。在纽约期间,他遇到了弗吉尼亚大学的一位朋友。这位朋友带他去了三个女孩合租的公寓。其中一个女孩是Marjorie Ruth Jamison(1922年9月30日—2010年5月24日)。巴科斯娶了Marjorie;他们有两个女儿Karen和Paula。

他描述了接下来发生的事(见[5]):-

我真的不知道我到底想用我的一生做什么。我认定我想要一套好的高保真音响,因为我喜欢音乐。那时候,这种东西还不真正存在,所以我去了无线电技术学校。我有一位非常好的老师——我遇到的第一位好老师——他让我与他合作,为一本杂志计算一些电路的特性。我记得做过相对简单的计算,以得到放大器曲线上的一些点。这既费力又乏味又可怕,但它让我对数学产生了兴趣。它有一个应用——这一点让我感兴趣。

因此,巴科斯进入纽约的哥伦比亚大学学习数学。他喜欢代数课程,但觉得微积分很乏味。他于1949年获得数学学士学位,并继续攻读硕士学位,于1950年获得数学硕士学位。就在毕业前,他参观了麦迪逊大道的IBM计算机中心。当他告诉导游他正在找工作,她让他去和一位主管谈谈[5]:-

我说不行,我不能。我看起来邋遢不整。但她坚持,所以我去了。我参加了一个测试,做得还行。

这个测试是由Robert R Seeber,人称Rex,出的一个谜题,在巴科斯解决后,他当场得到了工作机会。巴科斯于1950年加入IBM,作为纯科学和应用科学部门的程序员。他处理的第一个问题是为选择性序列电子计算器(SSEC)用机器代码编写一个程序,根据一个约1000项的级数展开给出的函数计算月球的位置。SSEC不是我们今天所理解的计算机,因为它没有存储,程序是打孔纸带。理解编程的困难后,巴科斯发明了一个他命名为Speedcoding的程序。他解释道[2]:-

……用机器代码编程是一件相当糟糕的事情……所有可用的只是一种非常粗糙的汇编程序。所以我想,好吧,让我们让它容易一点。[Speedcoding]是一个糟糕的设计,如果我可以这么说的话,但它比用机器语言编码要好。

1954年,他被任命为IBM编程研究部门的经理,担任此职位四年。他被认为是FORTRAN的发明者,这是第一个开发的高级计算机语言,因为他在1954年至1958年担任开发团队经理的角色。这个团队由巴科斯任命来协助他开发FORTRAN,其规格他已经拟定,由巴科斯领导。他们在1954年秋天发表了一篇论文,标题为Preliminary Report, Specifications for the IBM Mathematical FORmula TRANslating System, FORTRAN。它是为数学家和科学家设计的,并于1957年投入商业使用。描述他早期在FORTRAN上的工作,巴科斯说:-

我们不知道我们想要什么以及如何做。它只是有点成长起来。第一次斗争是关于语言会是什么样子。然后是如何解析表达式——这是一个大问题,我们所做的现在看起来笨拙得惊人。……

1959年,他发明了现在称为巴科斯 Naur Form(BNF)的东西,这是一种描述高级编程语言语法的标准记法。(Peter Naur于1960年发明了类似的方案。)他对计算机科学的第三项重大贡献是开发了一种名为FP的函数式编程语言,该语言倡导用数学方法进行编程。他在1977年获得美国计算机协会颁发的艾伦·图灵奖时所作的讲座Can Programming be liberated from the von Neumann Style? A Functional Style and its Algebra of Programs中提出了这一点。他在讲座的引言中解释了讲座的目的:-

二十年来,编程语言一直在稳步发展,直至今日的臃肿状态;因此,编程语言的研究和发明已失去了许多令人兴奋之处。相反,它现在成了那些宁愿处理厚厚的细节汇编而不愿与新的思想搏斗的人的领域。关于编程语言的讨论常常类似于中世纪关于一根针尖上能容纳多少天使跳舞的辩论,而不是根本不同的概念之间激动人心的较量。许多有创造力的计算机科学家已经从发明语言退回到发明描述语言的工具。不幸的是,他们大多满足于将他们优雅的新工具应用于研究现有语言的瑕疵和赘疣。在用Dana Scott开发的优雅工具检查了传统语言令人震惊的类型结构之后,我们中竟有如此多的人仍然被动地满足于那种结构,而不是积极地寻找新的结构,这令人惊讶。本文的目的有两点:第一,指出传统语言框架中的基本缺陷使其表达能力的薄弱和癌变式的增长不可避免;第二,提出一些探索新类型语言设计的替代途径。

让我们回到巴科斯的个人生活,再提供一些细节。1966年,巴科斯和他的妻子Marjorie离婚。就在他们分手之前,Marjorie将巴科斯介绍给了Barbara Una Stannard(1927-2004),她出生时名为Barbara Garlitz。巴科斯和Barbara于1968年7月18日在加利福尼亚州旧金山县结婚,Barbara是一位诗人和作家,拥有哈佛大学的博士学位。

巴科斯因其对计算机科学的杰出贡献而获得了许多荣誉。他于1967年从电气和电子工程师协会计算机学会获得了W Wallace McDowell奖:-

由于他对高级语言领域的早期和持续贡献,特别是由于他的构想和领导促成了首批FORTRAN项目的完成;以及由于他在ALGOL中纳入的语法形式方面的工作。

他于1975年从国家科学基金会获得了总统国家科学奖章:-

因其对计算机编程语言的开创性贡献,尤其是开发了FORTRAN语言,使现代数字计算机能够直接为无数科学家和工程师所用。

该奖章由总统莱斯特·佛特于1976年10月18日在白宫举行的仪式上颁发。

他于1977年获得美国计算机协会颁发的艾伦·图灵奖:-

因对实用高级编程系统设计作出的深刻、有影响且持久的贡献,尤其是通过他在FORTRAN方面的工作,以及因对编程语言规范形式化程序的奠基性发表。

正是这个奖项促成了他的讲座Can Programming be liberated from the von Neumann Style? A Functional Style and its Algebra of Programs,我们上文引用了该讲座。1993年,他获得美国国家工程院颁发的查尔斯·斯塔克·德雷珀奖:-

因其开发了FORTRAN,第一种被广泛使用的通用高级计算机语言。

1997年,他获得了计算机历史博物馆会士奖:-

表彰他开发了FORTRAN,以及对计算机系统理论和软件项目管理的贡献。

我们应该谈谈巴科斯的政治观点。他是反对ABM的计算机专业人员组织的成员,该组织在1965至1975年间反对美国的反弹道导弹系统。这个组织明确表示,他们的反对纯粹基于技术理由,尽管加入其中的许多人还基于其他理由反对该系统。巴科斯也是1984年成立的美国战略防御计划的反对者。他的反对同样基于技术理由,因为他认为开发用于管理战斗过程的计算机软件远远超出了当时的知识水平。

至于爱好,我们已经注意到他对音乐的热爱,但他也喜欢阅读历史书籍和传记。巴科斯于1991年退休,2004年妻子去世后,他搬到俄勒冈州阿什兰居住,以便靠近他的一个女儿。让我们以巴科斯的一段引文来结束这篇传记,这段话出自[5]:-

大多数科学家之所以成为科学家,是因为他们害怕生活。在科学中具有创造力是最美妙的,因为你可以做到这一点而不与人发生冲突,不遭受人际关系的痛苦,也不必在这个世界上闯荡。这是一个美妙的出路——这是一个无菌的世界,你可以使用你所拥有的非常令人兴奋的能力,而不会遇到任何痛苦。解决问题时的痛苦与生活中遇到的痛苦相比微不足道。内省不是一种科学活动:它不可重复,没有关于如何进行内省、期望发现什么的好理论。奇怪的是,通过审视自己,你真正体会到宇宙的奥秘。而通过试图发现物理定律,你则不会。

参考文献

正文里的方括号编号指向这里,悬停即可直接看到条目。书目保留原文——译了书名反而查不到文献。

延伸资源

原站列出的延伸阅读与外部数据库,照原样保留,目标多为英文页面。

相关专题

原站的交叉引用。指向本站已镜像专题的留在站内,其余仍指回原站。