张钹一九五八年毕业于清华大学自动控制系。现任清华大学信息学院学术委员会主任。主要从事人工智能、神经网络、遗传算法、智能机器人、模式识别以及智能控制等领域的研究工作。
基础研究在科技发展中的重要地位和作用,已经得到越来越多人的认可。当今存在着两种类型的基础研究工作。一种是属于自由探索性的基础研究,这种研究工作以研究者的个人兴趣为主导,需要自由、宽松的研究环境,一般没有明确的应用背景,研究工作带有较大的风险性和不可预测性。另一类属于瞄准国家目标,以解决国家社会发展、国民经济和国防建设重大需求的基础研究,它具有明确的应用背景,通常需要通过大规模的研究计划,组织不同领域的科学家来共同完成。后一种基础研究与技术创新和进步有着十分密切的关系。在此,我仅从分析计算机科技的发展入手,探讨后一类基础研究中的两个主要问题,即基础研究与技术创新的关系,以及怎样组织这种类型的基础研究工作。
半个世纪以来,计算机科技发展可以说是一日千里。显然,这是计算机技术不断创新与进步的结果。问题是计算机基础理论研究在其中起什么作用,它又是如何促进计算机技术的创新与进步的?
众所周知,1946年2月,第一台电子计算机于美国宾夕法尼亚大学与公众见面,从此揭开了现代计算机革命与发展的序幕。与当时已有的各种计算机器相比,这台机器最独特的地方不在于采用新的电子器件——电子管,而在于采用了一种全新的体系结构,即“存储程序通用机的体系结构。上个世纪30年代,英国数学家图灵为了破解德国发明的密码机所产生的密电码,专门研究了“可计算数的问题,即研究能够在有限的机械步骤内产生的密码,从而引出了通用计算机的概念。从此,所有计算机不管它的尺寸大小、性能高低,都无例外地以其作为“蓝本。
事实上,在电子计算机诞生之前,人们早已有了算盘、手摇机械式计算器、电动计算器、微分分析机等各种计算机器,并在不同领域得到应用。可是,令人惊奇的是,现代通用计算机的思想并不是由这些人们已经熟悉的机器中产生,它来源于对“可计算数的基础研究,这说明新概念往往不是简单地通过旧概念的扩展而引申出来,它常常源于更为基础的研究工作。
大家都知道高级程序语言的发明是计算机技术发展并得以广泛应用的重要一步,那么,高级程序语言又是怎么产生的?最初的计算机程序是按机器码编制的,对编程人员来讲自然很不方便。于是大家围绕机器码想方设法去改进它,比如,把二进制改为八进制或十六进制等等。但是所有围绕机器码的改进都不能从根本上改变手工编码的困难,因为它们未能摆脱机器码这个“怪圈。1949年,J.Mauchly提出了短指令码的新概念,即让编程人员用熟悉的如加、减、乘、除等符号编写程序,再通过一个预制的表格将这些符号变成“短码,再变成机器码。“短码概念的引入使人们跳出了机器码的约束,“短码(汇编语言)也由此成为一切高级程序语言的最重要基础。
回顾计算机的发展历史可以看到,基础研究是推动技术发展的重要因素。这就告诉我们,计算机领域,推而广之,整个信息领域的发展,需要国家目标牵引的基础研究,需要将基础研究、技术创新与开发应用紧密地结合起来。
那么,如何组织这样类型的基础研究呢?
组织大型的以国家目标为导向的基础研究任务是解决国家社会发展、国民经济和国防建设重大需求的一个重要途径。上个世纪30年代,为了国防的需要,欧洲各国把破译德国的密码作为目标,制定了许多研究计划,吸引了大量科学家的参与。欧洲在计算科学基础研究上的成就对后来计算机的诞生有着不可磨灭的贡献。但奇怪的是,尽管当时基础理论研究的优势在欧洲,但第一台电子计算机却出现在美国,而且半个世纪以来,在计算机科技创新上美国几乎占据绝对优势的地位,这是值得深思的。其原因是,二战期间和以后,美国为了战争以及以后冷战的需要,制定了一系列满足国家战略目标的战略研究发展计划,如曼哈顿(原子弹)计划和计算机的研制计划等等。通过这些计划,美国创造了一个自由、国际化的研究环境,吸引全世界最优秀的科学家参与研究工作。由此可见,根据国家的需求,即时地规划和组织大型科技研究任务是至关重要的。