|
|
|
|
|
春风大雅能容物 秋水文章不染尘 |
|
——程序设计语言发展历程 |
■陈绥阳
如果有人要预测中国的计算机科学家什么时候能获图灵奖,还是艾伦·凯的至理名言:“预测未来的最好方法是创造它。”
创造,要有一个历史过程。从程序设计语言的早期发展来看,至少有两条路。一是逻辑,一是计算。
对于逻辑,早在1931年,哥德尔在研究不完全性定理时,就提出了基于算术基础的形式语言。1935年,图灵对数理逻辑发生兴趣,并于1936年提出了有别于哥德尔方法的“图灵机”的概念,发表了著名的论文On Computable Numbers With an Application to the Enstcheidungs Problem。那时,还产生了与之等价的递归函数论和λ—谓词演算。1955年,约翰·麦卡锡等人在达特矛斯会议上提出了“人工智能”这个概念后,1958年麦卡锡发明了基于λ—谓词演算的Lisp语言,从而奠定了约翰·麦卡锡图灵奖的地位。前后,经历了大约30年的时间。
在这30年间,中国有幸涉足计算机领域的学者,这里要提及的是夏培肃、唐稚松、吴文俊,他们或前或后是麦卡锡的同龄人。较早把数理逻辑介绍到中国的是金岳霖及其弟子沈有鼎,著名的计算机科学家王浩就是金岳霖的学生。不过,王浩的父亲王祝晨有次给金岳霖写信,说:我儿子数学学得挺好,是你们把他从数学引到唯心主义歧途了,好孩子全叫你们教坏了。当时,基本上还是向西方学习。上世纪50年代,北大还有一个数理逻辑方面的讨论班,后来,可能被认为这不是马克思主义的哲学,在“反右”后就停了。上世纪70年代,由于验证计算机计算结果的需要而产生了时态逻辑。唐稚松与阿米尔·伯努利(Amir Pnueli)同为时态逻辑的领跑人,同时还提出了基于时态逻辑的语言XYZ/E。1996年,伯努利因把时态逻辑引入计算机科学及对程序系统检验的贡献而获奖。伯努利与唐稚松是至交,在赴美接受图灵奖的前夕给唐稚松的信中说:“我完全相信,由于使时态逻辑成为‘深远影响’的理念,你应该分享这一荣誉中一个很有意义的部分。”可见,唐先生乃至中国的科学家在国际上并没有话语权。
1950年,塔斯基(A.Tarski)证明了一条引人注目的定理:“一切初等几何与初等代数范围的命题,都可以用机械方法判定。”王浩开始机器证明的研究始于1953年,到1959年,作为美国洛克菲勒大学的华裔教授,王浩在IBM计算机上仅用3分钟时间,就完成了怀特海《数学原理》中多条有关命题逻辑的证明,并于1960年在《迈向数学机械化》的文章中提出了“数学机械化”一词。1976年底,吴文俊在中国古代数学机械化与代数化思想的影响下,提出了现称为“吴方法”的奠基性论文《初等几何判定问题与机械化证明》。1997年,第14届国际自动推论大会对吴文俊获得Herbrand自动推理杰出成就奖的评价是:“几何定理自动证明首先由Herbert Gerlenter于50年代开始研究。虽然得到了一些有意义的结果,但在吴方法出现之前的20年里这一领域进展甚微。在不多的自动推理领域中,这种被动局面是由一个人完全扭转的。吴文俊很明显是这样一个人。”惜乎,1983年,吴方法才被介绍到世界上。
对于计算,如果说Lisp是从逻辑理论发展为编程语言,那么Fortran从一开始就是作为编程语言设计出来并代表了语言设计的一种完全不同的方向,这个方向就是数值计算。1956年,Fortran刚诞生时实际上是汇编语言加上数值计算,在某些方面,还不如今天的汇编语言强大。Fortran在技术上要解决的一个问题是浮点计算。
早期的浮点运算是通过程序实现的,一是威尔金森(J.H.Wilkinson,1970年图灵奖获得者)在图灵所设计的ACE计算机上实现的子程序(见《计算机,怎么就科学了》),另一是巴克斯(J.Backus,1977年图灵奖获得者)和他的同事海里克(H.Herrick)一起开发出的名为“Speedcoding”的软件,该软件可自动设定和调整比例因子,实现了冯·诺伊曼的“比例因子”法。由此,巴克斯发明了Fortran语言。前者的缺点是影响运算速度,后者是影响取值范围和精度。真正解决浮点运算的是学硕博连读、产学研结合的卡亨教授,他在Intel工作期间,主持设计了8087芯片,产生可进行高速、高效浮点运算的8087协处理器(mathematical coprocessor),并主持制定了浮点运算标准IEEE 754与IEEE 854,由此成为1989年图灵奖获得者。
浮点运算的实现,为数值计算提供了现实的平台。第一个因数值计算获得图灵奖的是前面提到的威尔金森。我国开始计算数学的教学,是在上世纪50年代苏联学者梅索夫斯基赫到吉林大学讲学后。我的老师王德人先生就是随梅学习的吉林大学计算数学1956年的毕业生。经过二十多年的努力,我国计算数学界基本上建立了数值代数、逼近论、正问题、反问题四大领域的教学体系,而达到世界先进水平在这里要提一下的是冯康、郭本瑜。
有意思的是,在最早的56名获奖者中,有6名文科类专业毕业的学者,而计算机科学专业出身的只有3人。如卡普是文学,西蒙是政治学。弗洛伊德,本科也是学文学,他从一名计算机操作员做起,自学成才而发明“归纳断言法”以验证程序正确性。隔山打牛的功夫十分了得,大有民科之嫌,大概逻辑是不分文理的。
西方学者在图灵奖上的话语权是近百年来自然形成的,中国学者目前还处于向其学习的阶段,如果不能融入其语境中,是难以获奖的,除非是图灵般的划时代创新。
(http://blog.sciencenet.cn/u/chensuiyang)
《中国科学报》 (2012-02-11 A3 博客@科学网)