Fortran Coder

查看: 5066|回复: 2
打印 上一主题 下一主题

[闲聊] 记FORTRAN之父John W. Backus一位回头浪子的传奇人生

[复制链接]

11

帖子

3

主题

0

精华

入门

F 币
127 元
贡献
59 点

爱心勋章帅哥勋章

跳转到指定楼层
楼主
发表于 2014-11-22 11:53:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    2007年3月20号,计算机科学先驱之一、FORTRAN之父、1977年图灵奖得主、BNF(巴克斯-诺尔范式)的发明者之一、美国科学院院士和工程院院士、John W. Backus走完了他生命的最后一程。

   Backus 1924年生于美国费城,家庭富裕。他的父亲曾供职于一家火药公司,因为善于分析问题,找到了公司常常发生爆炸事故的原因(原来是德国进口的温度计惹的祸),从普通员工升为公司首席化学家。一战期间军火业火爆,他的父亲因此致富。战后他成为证券经纪人,也非常成功。

      因为家庭条件优越,小Backus无忧无虑,在人生的最初岁月,大有玩世不恭的意思,成了一个纨绔子弟。在宾夕法尼亚州著名的Hill中学,他经常考试不及格,而且常常旷课。据他自己回忆:“那时我讨厌学习,功课老不及格,只是晃来晃去地消耗时间。一心想着暑假去新罕布什尔州的夏令营,划船,玩耍。”“学校里有趣的地方就是有那么多规矩你可以去违反。”(The delight of that place was all the rules you could break)

      直到18岁时(1942年)才进入弗吉尼亚大学。化学家出身的父亲让他子承父业,他喜欢化学理论,但对摆弄瓶瓶罐罐做试验可不感冒,因此到第二学期的时候,每周就只上一堂课(据说还是音乐欣赏课)了,最终被学校开除,结束了短暂的第一次大学生涯。

      很快Backus就参军入伍,在佐治亚州Stewart军事基地担任防空任务。但在能力测试中,他表现出色,被美国军方送到匹兹堡大学学习工程预科,在另一次能力测试中,他显示出医学才能,于是又被送到了哈弗福德学院(Haverford College)医学预科学医。期间他被诊断出脑瘤(一说骨瘤),手术植入了一块金属板。1945年他进入纽约一家医学院,但是他发现学校里“不鼓励思考,只是死记硬背”,9个月后就退学了。

      
     在又一次脑部手术之后,1946年Backus退伍了。他自己住在纽约,不知前途何在。他后来回忆说:
“我真不知道自己这一辈子到底该干什么。我想弄一套好的高保真音响,可那时候这种东西还不存在。于是,我进入了一家无线电技师学校。在那里我遇到了一位好老师——这可是我人生的第一次,他让我和他一起为一个杂志计算某些电路的特性。计算很繁琐,但是它让我对数学发生了兴趣。我发现,原来数学是有实际用途的。”

     他从头再来,进入哥伦比亚大学学习数学。在1950年毕业前,他偶然地参观了IBM公司麦迪逊大街计算机中心,被宏伟的SSEC大型电子管计算机迷住了。其间他告诉讲解员自己在找工作,这位女讲解员建议他去找主管谈谈。Backus觉得自己蓬头垢面邋邋遢遢的,不想去,但架不住讲解员一个劲儿的鼓励。没想到,只是被不那么正式地口头提问了一些数学题,他就当场通过,这样进入了IBM。


     1950年,他成为IBM的程序员。他的工作除了编程(使用打孔带)之外,就是维护那台1948年建成、由一万多个真空管和两万多个继电器组成、还为1969年阿波罗登月计划立下汗马功劳的SSEC。三年中,除了一个复杂的计算月亮位置的程序外,他还开发了一个名为Speedcoding的程序,第一次实现了用诺伊曼提出的比例因子存储和计算浮点数。


     二进制层次编程的艰辛和困难,使Backus意识到高级语言的必要性。1953年,他向IBM高层提交了一份备忘录,提出为新型的704计算机开发一种高级编程语言,降低开发成本。他论证说,当时程序员的薪水已经赶上硬件成本。负责应用科学部的Cuthbert Hurd很快就批准了这一计划。Backus后来称赞:“他真的很懂行。”

     这其中还有一个小插曲,当时冯诺伊曼正在担任IBM公司顾问,每周一次“升堂”审查公司的各种新科研计划。他当时看到了FORTRAN的想法,丝毫没有兴奋之感,反而这样问Backus:“为什么除了机器语言之外,你还想弄点别的呢?” 当时也在场的Frank Beckman回忆到,冯诺伊曼将这一计划斥为“图灵short code概念的一种应用”。有趣的是,冯诺伊曼此后还一直坚持这种观点,他在普林斯顿的学生Donald Gillies回忆说,为了不像大家那样手工将程序汇编为二进制代码,他曾经开发了一个汇编程序,冯诺伊曼发现后非常生气,说:“这是在浪费宝贵的科学计算设备来干琐碎的杂事!”


    1954年,Backus很快招募到了Irving Ziller和Harlan Herrick,开始了项目的开发。项目小组最后有10个人,都是二三十岁的年轻人,背景出处各不相同,Backus注重的只有一点:解决问题的能力。Backus的管理非常灵活,没有太正式的工作时间,虽然可能会很长,冬天工作后大家都出去打雪仗,对于公司一套严格的考评制度,Backus认为不适合程序员,将其束之高阁。

     设计一 种语言并不难,描述FORTRAN语言草案的论文Preliminary Report, Specifications for the IBM Mathematical FORmula TRANslating System, FORTRAN于当年年中发表。难的是编译器的设计,Backus本来希望在六个月内完成,最后却花了两年多。1956年,语言手册完成,1957年4月,有25000行代码存储在磁带上的第一个FORTRAN编译器发布。一个新的时代开始了。


     受FORTRAN影响,ACM和德国应用数学与力学学会(GaMM)共同提议开发一种标准化的高级语言。1958年5月于苏黎世举行的国际性会议群贤毕集,有Backus、BauerPerlis等等大师。这个国际协作的结果,就是ALGOL语言

     开发FORTRAN之后,Backus开始思考计算机程序设计的其他基础方面,1959年他提出了BNF。后经2005年图灵奖得主Peter Naur改进,又经1984年图灵奖得主N. Wirth扩充为EBNF(Extended BNF)。

     此后,Backus在反思FORTRAN设计得失的基础上,全力从事函数级程序设计语言的研究和开发,成果包括FP语言FL语言
     
     《纽约时报 》的讣告是这样结尾的:
      “创新,” Backus先生说,“就是不断地尝试和出错的过程。”
     “你需要勇于失败,” 他说,“你不得不想出许多想法,然后努力工作,只是为了证明这些想法不可行。如此不断反复,最后你就会发现那个可行的想法了。”



分享到:  微信微信
收藏收藏1 点赞点赞 点踩点踩

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2014-11-22 12:03:00 | 只看该作者
教父级人物

47

帖子

3

主题

0

精华

大师

F 币
1634 元
贡献
119 点

规矩勋章

板凳
发表于 2017-7-15 18:04:40 | 只看该作者
学习了~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-25 15:24

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表