数学家传记
约翰·巴科斯是一位美国数学家,以发明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]:-
大多数科学家之所以成为科学家,是因为他们害怕生活。在科学中具有创造力是最美妙的,因为你可以做到这一点而不与人发生冲突,不遭受人际关系的痛苦,也不必在这个世界上闯荡。这是一个美妙的出路——这是一个无菌的世界,你可以使用你所拥有的非常令人兴奋的能力,而不会遇到任何痛苦。解决问题时的痛苦与生活中遇到的痛苦相比微不足道。内省不是一种科学活动:它不可重复,没有关于如何进行内省、期望发现什么的好理论。奇怪的是,通过审视自己,你真正体会到宇宙的奥秘。而通过试图发现物理定律,你则不会。
John Backus's parents were Cecil Franklin Backus (1885-1966) and Elizabeth Warner Edsall (1904-1933). Cecil Backus graduated with a degree in chemistry from the University of Virginia in 1906 and worked for the Eastern Laboratory of the E I Dupont De Nemours Powder Company before moving to work for the Atlas Powder Company in Wilmington, Delaware. He worked for the investment banking firm of Gillespie & Meeds from 1920 to 1922. This firm became Laird, Bissell & Meeds and he was a partner from 1923 to 1940. Elizabeth Edsall, John's mother, was the daughter of a Wilmington physician. Cecil and Elizabeth were married on 28 May 1921 in Wilmington, New Castle, Delaware. They had three children, Anne Hall Backus (born 25 March 1922), John Warner Backus (the subject of this biography) and Cecil Franklin Backus Jr. The family were well off and during the years that Cecil and Elizabeth Backus were married they collected high quality American antique furniture. After John's mother Elizabeth died, his father married Alice Beaver Candee (1901-1992) on 12 June 1935 in Wilmington, New Castle, Delaware. John spent his first years in Wilmington, Delaware and then attended the Hill School in Pottstown, Pennsylvania. This family boarding school, founded in 1851, was highly regarded and run by the headmaster James I Wendell. Backus graduated from the Hill School in 1942 although, according to his own account, he did not take his studies there too seriously [5]:-
I flunked out every year. I never studied. I hated studying. I was just goofing around. It had the delightful consequence that every year I went to summer school in New Hampshire where I spent the summer sailing and having a nice time.
John Backus entered the University of Virginia to study chemistry at his father's request. In his first semester he enjoyed the theory part of chemistry but disliked the laboratory work intensely. He enjoyed the social life, however, and was at every party that he could find. He wrote in 2004:-
All anyone seemed to do at the University of Virginia was drink themselves silly.
He was no more diligent than at school, however, and in his second semester he only enrolled in one course - a music appreciation class. This was not what the University of Virginia expected of their students and in 1943 his studies were terminated. With America playing a major role in World War II, in that year he joined the army. He was given the rank of corporal and put in charge of an antiaircraft crew at Fort Stewart, Georgia [2]:-
I only stayed there for a few months, and then I was selected for army specialized training. Then I went to some little place in Alabama to get classified.
When he took this army aptitude test, his performance led to him being sent to the University of Pittsburgh to take the pre-engineering programme [2]:-
Then I went to the University of Pittsburgh, which I enjoyed enormously because I was supposed to be learning all this stuff that I had already studied. So I spent a lot of time there. There's a place called the "Pittsburgh Playhouse," which was really a bar. A very friendly place.
Given a medical aptitude test by the army, he was now sent to Haverford College to take pre-medical training. Later in life he thought that this may have saved his life since many of his friends at Pittsburgh were sent to Europe to serve on the Western Front. The Battle of the Bulge, the major German offensive in December 1944, saw the largest number of American casualties in the war and many of Backus's friends were killed. After a while at Haverford College, Backus was sent to an Atlantic City hospital where he worked in a neurosurgery ward that treated head wounds [2]:-
So I stayed in Atlantic City working in this hospital 12 hours a day for a while, living in the Traymore Hotel on the Boardwalk.
Strangely, a large bump on his head was noticed and he was found to have a bone tumour. After an operation to remove the tumour he had a plate fitted in his head. For a while he was recovering, he had no duties and was able to enjoy the nightlife of Atlantic City. Now medical training seemed to be the right direction for Backus but after nine months of medical school at Flower and Fifth Avenue Hospital, now known as the New York Medical College, he gave this up too [5]:-
I hated it. They don't like thinking in medical school. They memorize - that's all they want you to do. You must not think.
Again without any idea which direction he should take, he took an apartment on East 71st Street in New York. The plate that had been put in his skull was giving problems so had a new one with the correct curvature fitted at a hospital on Staten Island. While in New York he met up with one of his friends from the University of Virginia. This friend took him to an apartment shared by three girls. One of the girls was Marjorie Ruth Jamison (30 September 1922 - 24 May 2010). Backus married Marjorie; they had two daughters Karen and Paula.
He describes (see [5]) what happened next:-
I really did not know what the hell I wanted to do with my life. I decided that what I wanted was a good hi-fi set because I liked music. In those days, they did not really exist so I went to a radio technicians' school. I had a very nice teacher - the first good teacher I ever had - and he asked me to cooperate with him and compute the characteristics of some circuits for a magazine. I remember doing relatively simple calculations to get a few points on a curve for an amplifier. It was laborious and tedious and horrible, but it got me interested in math. The fact that it had an application - that interested me.
As a consequence, Backus entered Columbia University, New York, to study mathematics. He enjoyed the algebra courses but found calculus tedious. He graduated was a B.S. in Mathematics in 1949 and continued to a Master's Degree being awarded an M.S. in Mathematics in 1950. Just before he graduated he visited the IBM Computer Center on Madison Avenue. When he told the guide that he was looking for a job she told him to talk to a director [5]:-
I said no, I could not. I looked sloppy and dishevelled. But she insisted and so I did. I took a test and did OK.
The test was a puzzle set by Robert R Seeber, known as Rex, and after Backus solved it he was offered a job on the spot. Backus joined IBM as a programmer in the Pure and Applied Science Departments in 1950. The first problem he worked on was to write a program in machine code for the Selective Sequence Electronic Calculator (SSEC) to calculate the position of the moon from a function given by a series expansion with about 1000 terms. The SSEC was not a computer in the sense we would understand today since it had no storage and programs were punched paper tape. Understanding the difficulties of programming, Backus invented a program he named Speedcoding. He explained [2]:-
... programming in machine code was a pretty lousy business to engage in ... all that was available was a sort of a very crude assembly program. So I figured, well, let's make it a little easier. [Speedcoding] was a rotten design, if I may say so, but it was better than coding in machine language.
In 1954 he was appointed as manager of the Programming Research Department at IBM, a position he held for four years. He is considered the inventor of FORTRAN, the first high level computer language to be developed, for his role as manager of the development team from 1954 to 1958. The team, appointed by Backus to assist him develop FORTRAN whose specifications he had already drawn up, was headed by Backus. They published a paper in the autumn of 1954 with the title Preliminary Report, Specifications for the IBM Mathematical FORmula TRANslating System, FORTRAN. It was designed for mathematician and scientists and became commercially available in 1957. Describing his early work on FORTRAN, Backus said:-
We did not know what we wanted and how to do it. It just sort of grew. The first struggle was over what the language would look like. Then how to parse expressions - it was a big problem and what we did looks astonishingly clumsy now. ...
In 1959 he invented what is now called the Backus Naur Form (BNF), a standard notation to describe the syntax of a high level programming language. (Peter Naur invented a similar scheme in 1960.) His third major contribution to computer science was to develop a functional programming language called FP, which advocates a mathematical approach to programming. He proposed this in his lecture Can Programming be liberated from the von Neumann Style? A Functional Style and its Algebra of Programs which he gave on the occasion of receiving the Turing Award from the Association for Computing Machinery in 1977. He explained the purpose of his lecture in its Introduction:-
For twenty years programming languages have been steadily progressing toward their present condition of obesity; as a result, the study and invention of programming languages has lost much of its excitement. Instead, it is now the province of those who prefer to work with thick compendia of details rather than wrestle with new ideas. Discussions about programming languages often resemble medieval debates about the number of angels that can dance on the head of a pin instead of exciting contests between fundamentally differing concepts. Many creative computer scientists have retreated from inventing languages to inventing tools for describing them. Unfortunately, they have been largely content to apply their elegant new tools to studying the warts and moles of existing languages. After examining the appalling type structure of conventional languages, using the elegant tools developed by Dana Scott, it is surprising that so many of us remain passively content with that structure instead of energetically searching for new ones. The purpose of this article is twofold; first, to suggest that basic defects in the framework of conventional languages make their expressive weakness and their cancerous growth inevitable, and second, to suggest some alternate avenues of exploration toward the design of new kinds of languages.
Let us return to give a few more details of Backus's personal life. In 1966 Backus and his wife Marjorie were divorced. Just before they split up, Marjorie introduced Backus to Barbara Una Stannard (1927-2004) who was born Barbara Garlitz. Backus and Barbara, a poet and author with a Ph.D. from Harvard, were married on 18 July 1968 in San Francisco County, California.
Backus received many honours for his outstanding contributions to computer science. He received the W Wallace McDowell Award from the Institute of Electrical and Electronic Engineers Computer Society in 1967:-
For his early and continuing contribution to the field of higher-level languages, in particular for is conception and leadership resulting in the completion of the first FORTRAN projects; and for his work in syntactical forms incorporated in ALGOL.
He received the President's National Medal of Science from the National Science Foundation in 1975:-
For his pioneering contributions to computer programming languages, especially development of the FORTRAN language which made the modern digital computer directly available to countless scientists and engineers.
The Medal was presented by President Ford in a ceremony at the White House on 18 October 1976.
He received the A M Turing Award from the Association for Computing Machinery in 1977:-
For profound, influential, and lasting contributions to the design of practical high-level programming systems, notably through his work on FORTRAN, and for seminal publication of formal procedures for the specification of programming languages.
This was the award which led to his lecture Can Programming be liberated from the von Neumann Style? A Functional Style and its Algebra of Programs from which we quoted above. In 1993 he was awarded the Charles Stark Draper Prize from the National Academy of Engineering:-
For his development of FORTRAN, the first widely used, general purpose, high-level computer language.
In 1997 he received the Computer History Museum Fellow Award:-
For his development of FORTRAN, contributions to computer systems theory and software project management.
We should say a few words about Backus's political views. He was a member of Computer Professionals Against ABM which campaigned against the U.S. anti-ballistic missile system around 1965-75. This organisation made it clear that their opposition was on purely technical grounds although many of those who joined opposed the system on other grounds as well. Backus was also an opponent of the U.S. Strategic Defense Initiative set up in 1984. His opposition was again based on technical grounds since he believed that developing computer software to manage the course of a battle was well beyond the present state of knowledge.
As to hobbies, we have already noted his love of music but he also liked to read books on history and biographies. Backus retired in 1991 and, after the death of his wife in 2004, he went to live in Ashland, Oregon to be near one of his daughters. Let us end this biography with a final quotation by Backus which comes from [5]:-
Most scientists are scientists because they are afraid of life. It's most wonderful to be creative in science because you can do it without clashing with people and suffering the pain of relationships, and making your way into the world. It is a wonderful out - it's sort of this aseptic world where you can use the very exciting faculties you have and not encounter any pain. The pain in solving a problem is small potatoes compared with the pain you encounter in living. Introspection is not a scientific activity: it's not repeatable, there are no good theories about how to do it, what you expect to find. It's strange that by looking into yourself you really get an appreciation of the mystery of the universe. You don't by trying to find the laws of physics.
正文里的方括号编号指向这里,悬停即可直接看到条目。书目保留原文——译了书名反而查不到文献。
原站列出的延伸阅读与外部数据库,照原样保留,目标多为英文页面。
原站的交叉引用。指向本站已镜像专题的留在站内,其余仍指回原站。