世界上第一台计算机ENIAC 1946年2月诞生于美国宾夕法尼亚大学莫尔学院。 但学术界公认,电子计算机的理论和模型
是由英国数学家图灵在此前10年即1936年发表的一篇论文 “论可计算数及其在判定问题中的前应用” (On Computable Numbers With an Application to the Entscheidungs Problem)中奠定了基础的。 因此,当美国计算机协会ACM在1996年纪念电子计算机诞生20周年, 也就是图灵的有历史意义的论文发表30周年的时候,决定设立计算机界的第一个奖项(在此之前,作出杰出贡献的计算机科学家只能获得数学方面或电气工程方面的奖项), 并且很自然地把它命名为 “图灵奖” 以纪念这位计算机科学理论的奠基人。 被称为“计算机界的诺贝尔奖”的这个奖设立至今,已经颁发了34届, 共有40名计算机科学家获此殊荣。
阿伦. 图灵(Alan Mathison Turing)1912年6月23日生于伦敦近郊的自治镇帕丁顿(Paddington,现归属伦敦Westminster区,英国议会大厦和世界闻名的 威斯敏斯特大教堂就在这里)。图灵的父亲是英国在印度的行政机构的一名官员,母亲平常也在印度陪伴其丈夫。1926年图灵的父亲退休以后,因为退休金不 高,为了节省,他们夫妇又选择在生活费用较低的法国居住,没有回英国定居,因此图灵和他的一个叫约翰的哥哥很少见到父母亲,他们是由从军队中退休的沃德 (Ward)夫妇带大的。童年时缺乏父爱和母爱,也许正是图灵自幼起性格和行为就比较怪辟,并最终酿成悲剧结局的一个重要原因。图灵13岁进入寄宿的谢博 恩中学(Sherbourne School),学习成绩并不特别好,只有数学例外,演算能力特别强。此外,就是擅长赛跑,我们现在还能看到图灵在运动会上参加赛跑中冲过终点时留下的照 片。
1931年中学毕业以后,图灵想进剑桥大学最负盛名的“三圣学院”(Trinity College),但两次未被录取,只好进了剑桥的另外一所学院——“国王学院”(King’s College)攻读数学。第一年的课比较浅,图灵很厌烦,没有好好学,结果在剑桥大学特设的一种叫Tripos 的荣誉学位考试中只得了“二等”。好在他急起直追,最后毕业时的数学学位考试还是拿了第一等,取得这个成绩的学生在剑桥大学有一个特别的荣誉称号,叫Wrangler。图灵的学位论文课题是关于概率论的中心极限定理(the Central Limit Theorem of Probability)的。实际上,由于他在研究这个课题时对前人的这方面所做的工作一无所知,可以说是图灵自己又重新发现了这个定理。1936年图灵因就同一课题所发表的论文而获得史密斯奖(Smith Prize)。
1935 年,图灵开始对数理逻辑发生兴趣。数理逻辑(mathematicallogic)又叫形式逻辑(formal logic)或符号逻辑(symbolic logic),是逻辑学的一个重要分支。数理逻辑用数学方法,也就是用符号和公式、公理的方法去研究人的思维过程、思维规律,其起源可追溯到17世纪德国 的大数学家莱布尼茨(Gottfried Wilhelm leribniz,1646-1716),其目的是建立一种精确的、普遍的符号语言,并寻求一种推理演算,以便用演算去解决人如何推理的问题。在莱布尼茨 的思想中,数理逻辑、数学和计算机化,以至在计算机上实现。但莱布尼茨的这些思想和概念还比较模糊,不太清晰和明朗。两个多世纪来,许多数学家和逻辑学家 沿着莱布尼茨的思路进行了大量实质性的工作,使数理逻辑逐步完善和发展起来,许多概念开始明朗起来。但是,“计算机”到底是怎样一种机器,应该由哪些部分 组成,如何进行计算和工作,在图灵之前没有任何人清楚地说明过。正是图灵上述1936年那篇标题有些古怪(其中“判定问题”用的是外文——德文!)的论文 第一次回答了这些问题,提出了一种计算机的抽象模型,利用这种计算机,可以把推理化作一些简单的机械动作。图灵提出的计算模型现在被大家称作“图灵机” (Turing Machine)。
说来有趣,具有重大科学价值和历史意义的计算模型,并非图灵那篇论文的主题。图灵那篇论文主要是回答同样是德国大数学家的戴维. 希尔伯特(David Hilbert,1862-1943)在1900年举行的世界数学家大会上得提出的著名的“23个数学难题”中的一个问题的,这个问题涉及逻辑的完备性, 即是否所有的数学问题在原则上都是可解的。图灵的论文回答了这个问题:有些数学问题是不可解的。而自动计算机的理论模型则是图灵在其论文的一个脚注中“顺 便”提出来的。这可正谓“歪打正着”——图灵这篇传世的论文主要是因为这个脚注,其正文的意义和重要性反而退居其次了。值得回味的是,在科学技术的发展史 上,这样的事例并不鲜见。
那末图灵设想的计算机也就是图灵机到底是什么样的和怎样工作的呢?下面作一个简要的介绍。(对图灵机的描述有许多不同的方式,但互相都是等价的。下面的描述参照了参考资料[1]。类似描述也可见参考资料[4]。)
图灵机由一条双向都可无限延长的被分为一个个小方格的磁带、一个有限状态控制器和一个读写磁头组成,如下图所示。图灵机一步步地进行工作,机器工作情况取决于三个条件,即:
l 机器的内部状态
l 读写磁头扫描在磁带的哪个方格上
l 该方格上有什么信息
机器执行一步工作的过程如下:读写磁头在所扫描的方格上写上符号,原有符号自然消除;磁头向右或向左移动一个方格,机器由当前状态转向另一个状态,进入下一步工作。如此周而复始,除非遇到命令机器停止工作的状态。例如,上图中的机器在某一步上处于状态q3,将所扫描方格中的A改写为E,左移一个方格,进入状态q5,磁头将要扫描的方格内的字母为T。机器下一步的工作由q5和信息T唯一确定。
图灵机的这种由状态、符号确定的工作过程叫图灵机的程序,可以方便地用下列五元组确定的一个阵表来定义:
< q, b, a, m, q’>
其中q、 q’是有限状态控制器中的状态,q 为当前状态,q’为下一状态;b、a表示方格中的符号,b是当前方格原有符号(before),a是修改后的符号(after);m指示磁头移动方向,若 左移为L(Left),若右移为R(Right),不动用N表示(No-motion)。这样,上述图灵机的一步动作就可用下列五元组确切地描述:
< q3, A, E, L, q5 >
我们再来看一个完整的例子。假定要在二进制计算机上计算函数ƒ(x)=2x,也就是说x、ƒ(x)都用二进制表示,磁带方格中只能用0和1两个符号,空白用B表示。约定:
1.开始时,磁带上只有一连续的方格串上放入相应于x的二进制值的符号,其余方格都是空白。
2.机器从状态q1 开始,磁头处于x最左一位所在的方格。
3.停机时磁带上非空方格串所组成的二进制值即代表ƒ(x)。
在以上约定下,计算ƒ(x)= 2x 的图灵机程序将如下表所示。表中标有Error的地方表示在计算中不会出现。
如果用Q = {q1,q2,q3,…,qm}表示有限状态集,用 ={a1,a2,a3,…,an}表示磁带方格上的符号集,用R、L、H分别表示右移一格、左移一格或停机,那末图灵机(程序)也可以用下述映射进行定义:
大 家看,实际组织、结构及动作都极为复杂的计算机,经过图灵机的抽象,变得多么简单,多么清晰!这正是图灵机的意义所在。表面看来,图灵机的计算功能似乎很 弱;实际上,只要提供足够的时间(也就是允许足够多的步数)和足够的空间(也就是磁带足够长),则图灵机的能力极强,足以代替目前的任何计算机。图灵自己 就信心十足地指出,凡是可计算的函数都可以用他的图灵机来计算,这被称为图灵论题。美国著名的数学家和逻辑学家、因发明λ演算而闻名的阿伦索.邱奇(Alonzo Church,1903-1995)也认为:任何计算,如果存在一有效过程,它就能被图灵机所实现,这一著名命题被称为邱奇论题。有时两者合称图灵一邱奇论题。
图灵的论文发表以后,立刻引起了大洋彼岸的美国科学家的重视。年轻的英国数学家的深刻见解和重大创新令他的美国同行十分惊叹,普林斯顿大学立即向图灵发出邀请,于是图灵首次远涉重洋,到美国和邱奇合作,并于1938年在普林斯顿大学取得博士学位。他的博士论文课题是“基于序数的逻辑系统”
(Systems of Logic Based on Ordinals)。在这里,图灵还研究了由乔治.布尔(George Boole,1815-1864)于1854年创建的逻辑代数,自己动手用继电器搭逻辑门组成了乘法器。这方面的知识和经验为他后来破译德国人的密码打了一个很好的基础。在美国,图灵还遇到了计算机科学理论的另一位重要奠基人、出生在匈牙利的天才科学家冯.诺伊曼(John von Neumann,1903-1957)。冯.诺伊曼因研究博奕论并把博奕论用于商业及军事方面而出名,1930年移居美国后也在普林斯顿大学任教。冯.诺伊曼对图灵十分欣赏并邀请他到他那里工作,但图灵没有接受这个邀请,1938年回到英国剑桥大学。在战争爆发以前,图灵从事的研究工作是Z函数的计算方法(method for calculation of the Zeta Function)。
第二次世界大战爆发后,因图灵正值服役年龄,只能像其他科学家一样,为战争服务。1939年秋季开始,图灵就进入英国外交部设在布莱奇利(Bletchley,在伦敦东北约80km处)的科学研究机构中工作。由于高度机密,英国的保密制度又特别严格,图灵在战时工作的细节至今不得而知。从一些零星透露出来的资料看,图灵这个时期所做的主要工作是破译德军密码。他用继电器做成被做成叫做“霹雳弹”(Bombe,因为继电器工作时发出“霹雳啪啦”的声音而得名)的译码机破译了德军的不少“恩尼格玛”(Enigma,这是德国使用的密码机的名称)密报,发现了德军的动向,特别是德军在大西洋上的潜艇的动向,为盟军战胜德国法西斯立了不少功劳。因此战后图灵被光荣授勋,被称为OBE(Officer Order of the British Empire,这是对非战斗人员的极高荣誉)。“霹雳弹”后来改用电子管,命名为“臣人”(Colossus),内含1800多个电子管,被认为是第一台投入运行的数字电子计算机。但英国政府直到20世纪90年代初才解密“臣人”的资料。有人说第一台“臣人”就是图灵监制的。
关于图灵在战时的表现,流传着不少故事。除了不修边幅、讲话木讷、孤僻等以外,最不可思议和令人难以置信的是,图灵
由于对英国能在战争中获胜没有信心,把所有的积蓄换成两块银条埋了起来,但后来却记不起埋在哪儿了。
战争期间,图灵曾在1942年因公务再次访问美国,会见了普林斯顿的老朋友,了解了美国在计算机研制方面的最新进展。战后,他没有接受他的母校国王学校的聘请,而去了英国国家物理实验室NPL(National Physical Laboratory)新建立的“数学部”(Mathematics Division),开始了设计与建设电子计算机的宏大工程。他把自己在计算模型方面的理论研究成果和战时在脉冲技术和电子学方面的实践经验结合起来,提出了一个设计方案,这个方案经英国皇家学会的一些院士组成的“评估委员会”(review committee)讨论通过,同意实行,并授权图灵自行招聘一些适当的工作人员。但在1946年5月以前,图灵一直未能找到称心的助手,因此长期“单枪匹马”。后来终于来了詹姆斯.威尔金森(James Hardy Wilkimson,1919-1986,他是1970年图灵奖获得者)。威尔金森也是剑桥大学的毕业生,战时在剑桥数学实验室的军械研究所工作,解决有关弹道方面的问题,精通计算数学。经过一次长谈,双方一拍即合,威尔金森成了图灵得力的助手。他们研制的计算机被起名为ACE(Automatic Computing Engine),这个名称是NPL数学部主任沃沫史莱(J.R.Womersley)起的,用以纪念查尔斯大林.巴贝奇(Charles Babbage ,1792-1871)的 Analytical Engine。威尔金森到来时,图灵设计的ACE已到了第五版。但图灵是一个不善于也不重视保管文档资料的人,前四版的设计早已不知丢到哪里去了。根据图灵的设计,ACE是一台串行定点计算机,字长32 bit,主频1MHz,采用水银延迟线作存储器,是一种存储程序式计算机。关于“存储程序”(stored program)的概念,是现代电子计算机的最基本概念之一,也是现代电子计算机的最基本特征之一。ENIAC虽然是世界上第一台电子计算机,但不是存储程序式的,程序要通过外接电路板输入。冯.诺伊曼在ENIAC研制过程中就发现了这个问题,并提出了解决方案。 1945年6月30日,冯.诺伊曼发表了题为“关于离散
变量自动电子计算机的草案”的正文, 正式提出了存储程序的概念,因此存储程序式计算机被称为“冯.诺伊结构”, 而他所建议的“离散变量自动电子计算机” 也就是后来由宾夕法尼亚大学莫尔学院建成的EDVAC计算机(Electronic Discrete Variable Automatic Computer)。 但图灵在设计ACE时的存储程序思想并非受冯.诺伊论文的影响,而是他自己的构思。 冯.诺伊本人也从来没有说过存储程序的概念是他的发明, 却不止一次地说过图录是现代计算机设计思想的创始人。 图灵在设计ACE时很重视机器速度的问题,采取了一系列方法使机器在一定主频下能有较快的指令执行周期,比如后来被称为“最佳编码”(optimum coding)或“等待时间最少的编码”(minimum latency coding)的技术,就是ACE首创的。ACE的其他创造包括实现浮点运算的一组子程序(这是图灵交给威尔金森的第一任务)及双倍字长指令等。
但是ACE计划的实现却遇到了很大困难。当时采取的是“设计”和“工程实施”分离的办法,设计由NPL负责,工程却由另一个政府部门即供应部(Ministry of Supply)负责,那里有一些搞过雷达、从而对脉冲技术比较熟悉的工程技术人员。双方的难以磨合导致计划进度迟缓,使图灵心情极坏,而NPL的主任查尔斯.达尔文爵士(Sir Charles Darwin,提出“进化论”的著名生物学家达尔文的曾孙)是个不太听得进意见的人,眼见问题成堆仍一意孤行,直到1947年才勉强同意在NPL中成立一个电子学小组(Electronics Group)实施ACE计划,领头的是托马斯博士(Dr.Thomas)。不幸的是,图灵和托马斯两人又互不相容,导致图灵于1948年离开NPL。图灵离开NPL以后,威尔金森接手负责这个项目,采取了一些措施,此外环境条件也有所改善,ACE的样机即Pilot ACE得以在1950年5 月完成。Pilot ACE不是根据图灵在离开NPL时留下的第八版完成的,而是根据早先的第五版设计实现的。Pilot ACE后来由英国电气公司EEC(English Electric Company)生产了约30台,其商品名为DEUCE。Pilot ACE(DEUCE)和剑桥大学的莫里斯.威尔克斯(Maurice Vincent Wilkes,1967年图灵奖获得者)研制的EDSAC(LEO)计算机使用权英国的计算机技术水平和产业化程度在20世纪50年代处于世界领先水平,可以和美国平起平坐,其中图灵的功劳是不可抹杀的,虽然他没有亲自把ACE的开发负责到底。
离开了NPL以后,图灵到曼彻斯特大学新成立的皇家学会计算实验室(Royal Society Computing Laboatory)当副主任。曼彻斯特大学在计算机发展史上曾经起过重大的作用,以威廉斯管的发明人F.C.Williams (1911-1977)和汤姆.基尔蓬(Tom Kilburm)为首的研究小组曾在1948年6月开发出了被称为世界上第一台存储程序式计算机的MARK I,其原型则被称为“婴儿机”(Baby Machine)。注意,20世纪40年代曾经出现过两个被称为MARK I的计算机,一个是这里所说的MARK I,另一个是美国哈佛大学的霍沃德.艾肯(Howard Aiken ,1900-1973)在IBM的支持下于1944年开发成功的机电式MARK I,这也正是IBM走上计算机
产业之路的开始。为了区别,常常把前者称为“曼彻斯特MARK I”,而把后者称为“IBM MARK I”。曼彻斯特MARK I后来由Ferranti公司商品化,其第一台于1951年2月安装于曼彻斯特大学,有资料把它说成是世界上第一个商品化计算机型号。图灵加盟曼彻斯特大学不但为它提供了强大的理论支持,也为它做了许多实际工作,据参考资料[4],图灵在这里曾和其他人合作,设计了纸带输入/输出系统,还编写了程序设计手册。因此,有些图灵传记中说图灵到曼彻斯特大学以后并未参与计算机的实际开发工作,是不太确切的。在这段时间里图灵为计算机科学所作出的又一个杰出贡献是他在1950年10月发表的论文“计算机和智能”(Computing Machinery and Intelligence)。在这篇经典的论文中,图灵进一步阐明了他认为计算机可以有智能的思想,并提出了测试机器是否有智能的方法,他称之为“模仿游戏”(Imitation Game),而大家现在称之为“图灵测试”(Turing Test)。 在这个测试中,让一个提问者通过电传打字机(现在可以通过计算机键盘)在远处同人或计算机相联系,提出各种各样问题。提问者根据对方的回答确定对方是人还 是计算机。如果在提出足够多的问题后提问者仍无法确定是人还是计算机,那末就可以认为机器具有人的智能。对自己的论点的正确性,图灵固然有十分的把握,但 对它的实现的前景,图灵只是作了非常审慎的估计。图灵预言,在50年以内,计算机可以被编出程序来有效地玩这个游戏,给提问者5 min的提问时间,让他作出恰当的判断的机会不多于70%。今年正好是图灵预言以后的50年。 对图灵预言是否已经实现,学术界有不同看法。有人认为图灵预言早就已经实现,因为随着计算机技术的迅猛发展和人工智能技术的进展,计算机早已有了相当程度 的智能,其明显标志是计算机会下棋,而且愈来愈精,近年来甚至把卡斯帕罗夫这样的国标特级大师都打败了。另外一种意见则认为图灵预言尚未实现,计算机要通 过图灵测试还有待时日。有人估计要30年以后才能出现真正具有人那样智能的计算机。不管专家们意见如何相左,图灵在这个问题上的高瞻远瞩同样是他的伟大天才的一个印证,这是没有疑问的。
在曼彻斯特大学期间,图灵发表的论文中还包括对黎曼(Bernard Riemann,1826-1866)Z函数的进一步研究成果,这是他战前曾经感兴趣而研究过的一个课题。这个时期,他对生物学和化学也产生了兴趣,曾经发表有关器官形成的化学基础的论文,探讨海星为什么呈五轴对称,原肠胚在特定的点上形成沟槽等现象。
由于图灵的一系列杰出贡献和重大创造,1951年他被选为英国皇家学会院士。但这之后,他就因私生活方面的问题而陷入困境。图灵是一位同性恋者。在曼彻斯特,他和一位19岁的所谓“街头青年”(young street person)默里把他的一个同伙带到图灵住处,这个同伙本是惯偷,临走时顺手牵羊拿走了图灵一些不太值钱的东西。图灵不知就里,报了案,警察侦破后在审讯中得知了图灵和默里的关系。20世纪50年代,社会对同性恋不像现在这样比较宽容,而被认为严重伤风败俗。1952年图灵被法院传讯,指控行为“极端不当”(gross imdecency)。但由于他战后受过勋,社会地位比较高,而且是一个名人,因此没有判他入狱,而是给予一年监外察看,并给予药物治疗,注射雌性荷尔蒙。两年以后,1954年6月7日,离开他的42周 岁生日不到两个星期,图灵因吃了氰化物溶液中浸泡过的苹果而在家中死去。图灵的母亲曾力图使官方宣布图灵为意外死亡,但未被理睬;外界一直说图灵是服毒自 杀。但图灵的同事始终认为图灵的死是一个不解的谜,因为对图灵的荷尔蒙治疗早已在一年前结束,这虽然为图灵留下了污点,但图灵毕竟已度过了这场变故,而且 他的事业并未受到影响。他既没有留下任何字条,也没有任何线索暗示他要走这一步。不管如何众说纷纭,划时代的科学奇才图灵就这样在他壮年时期无声无息地离 开了这个世界,一颗光芒四射的巨星从此陨落,为世人留下了无限的惋惜。
图灵去世后12年开始设立的图灵奖是美国计算机协会
ACM(Association for Computing Machinery) 设立的第一个奖项。ACM成立于1947年,也就是世界上第一台电子计算机ENIAC诞生以后的第二年,美国一些有远见的科学家意识到它对于社会进步和人类文明的巨大意义,因此发起成立了这个协会,以推动计算机科学技术的发展和学术交流。
ACM于1947年9月15日在纽约的哥伦比亚大学成立之初的名称是“东部计算机协会”(Eastern Association for Computing Machinery),后来才把Eastern这个词去掉而成为ACM。它的章程和附则是两年后才通过的,章程规定协会的目的有三:
1.推进信息处理科学和技术,包括计算机、计算技术和程序设计语言的研究、设计、开发和应用,也包括过程中的自动控制和模拟。
2.促进信息处理科学和技术在专业人员和大众中的自由交流。
3.维护信息处理科学和技术从业人员的权益。
ACM建立以来,积极地开展了活动,目前已成为计算机界最有影响的两大国际性学术组织之一(另一为IEEE的计算机协会,即IEEE Computer Society)。一些知名的计算机科学家,包括图灵奖获得者佩利、哈明和ENIAC的主要设计者之一莫奇利等都担任过ACM的主席。它下面又建立了几十个专业委员会(正式名称是所谓SIG——Special Interest Group),几乎每个SIG都有自己的杂志。据笔者不完全统计,由ACM出版社出版的定期、不定期刊物有40多种,覆盖了计算机科学技术的几乎所有领域。
图灵奖是ACM于1996年第一个设立的奖项,专门奖励那些在计算机科学研究中做出创造性贡献、推动了计算机科学技术发展的杰出科学家。虽然没有明确规定,但从实际执行过程来看,图灵奖偏于在计算机科学理论和软件方面作出贡献的科学家。奖金金额不算太高,设奖初期为2万美元,1989年起增到2万5千美元,奖金通常由计算机界的一些大企业提供(通过与ACM签订协议)。由于图灵奖对获奖条件要求极高,评奖程序又是极严,一般每年只奖励一名计算机科学家,只有极少数年度有两名合作者或在同一方向作出贡献的科学家共享此奖。因此它是计算机界最负盛名、最崇高的一个奖项,有“计算机界的诺贝尔奖”之称。从1966年到1999年的34届图灵奖,共计有40名 科学家获此殊荣,其中美国学者最多,此外还有英国、瑞士、荷兰、以色列等国少数学者。值得指出的是,迄今为止的图灵奖获得者名单中,不要说没有一个中国人 (包括美藉华裔学者),连法国、德国、日本这样一些发达国家的学者也一个都没有,这是令人遗憾的。当然,如同任何奖都不可能绝对客观、公正、公平一样,图 灵奖出现的这种不平衡是可以理解的,因为这个组织毕竟发源于美国,总部也设在美国,受美国人控制;就计算机科学技术而言,确实也是美国水平最高,贡献最突 出。我们只能这样评论:每个图灵奖获得者确实都是出类拔萃的;但出类拔萃的计算机科学家还有很多由于种种原因而没有获得图灵奖。我们相信,只要中国的计算 机学者不断努力,勇于创新,随着中国改革开放的逐步深入和对外学术交流的加强,总有一天,会有中国学者昂者频走上图灵奖的领奖台。
出自《ACM图灵奖——计算机发展史的缩影》(高等教育出版社)