1958年和1959年,中国先后制成第一台小型和大型电子管计算机。60年代中期,中国研制成功一批晶体管计算机,并配制了ALGOL等语言的编译程序和其他系统软件。60年代后期,中国开始研究集成电路计算机。70年代,中国已批量生产小型集成电路计算机。80年代以后,中国开始重点研制微型计算机系统并推广应用;在大型计算机、特别是巨型计算机技术方面也取得了重要进展;建立了计算机服务业,逐步健全了计算机产业结构。
在计算机科学与技术的研究方面,中国在有限元计算方法、数学定理的机器证明、汉字信息处理、计算机系统结构和软件等方面都有所建树。在计算机应用方面,中国在科学计算与工程设计领域取得了显著成就。在有关经营管理和过程控制等方面,计算机应用研究和实践也日益活跃。
计算机科学与技术
计算机科学与技术是一门实用性很强、发展极其迅速的面向广大社会的技术学科,它建立在数学、电子学(特别是微电子学)、磁学、光学、精密机械等多门学科的基础之上。但是,它并不是简单地应用某些学科的知识,而是经过高度综合形成一整套有关信息表示、变换、存储、处理、控制和利用的理论、方法和技术。
计算机科学是研究计算机及其周围各种现象与规模的科学,主要包括理论计算机科学、计算机系统结构、软件和人工智能等。计算机技术则泛指计算机领域中所应用的技术方法和技术手段,包括计算机的系统技术、软件技术、部件技术、器件技术和组装技术等。计算机科学与技术包括五个分支学科,即理论计算机科学、计算机系统结构、计算机组织与实现、计算机软件和计算机应用。
理论计算机学是研究计算机基本理论的学科。在几千年的数学发展中,人们研究了各式各样的计算,创立了许多算法。但是,以计算或算法本身的性质为研究对象的数学理论,却是在20世纪30年代才发展起来的。
当时,由几位数理逻辑学者建立的算法理论,即可计算性理论或称递归函数论,对20世纪40年代现代计算机设计思想的形成产生过影响。此后,关于现实计算机及其程序的数学模型性质的研究,以及计算复杂性的研究等不断有所发展。
理论计算机科学包括自动机论、形式语言理论、程序理论、算法分析,以及计算复杂性理论等。自动机是现实自动计算机的数学模型,或者说是现实计算机程序的模型,自动机理论的任务就在于研究这种抽象机器的模型;程序设计语言是一种形式语言,形式语言理论根据语言表达能力的强弱分为O~3型语言,与图灵机等四类自动机逐一对应;程序理论是研究程序逻辑、程序复杂性、程序正确性证明、程序验证、程序综合、形式语言学,以及程序设计方法的理论基础;算法分析研究各种特定算法的性质。计算复杂性理论研究算法复杂性的一般性质。
计算机系统结构程序设计者所见的计算机属性,着重于计算机的概念结构和功能特性,硬件、软件和固件子系统的功能分配及其界面的确定。使用高级语言的程序设计者所见到的计算机属性,主要是软件子系统和固件子系统的属性,包括程序语言以及操作系统、数据库管理系统、网络软件等的用户界面。使用机器语言的程序设计者所见到的计算机属性,则是硬件子系统的概念结构(硬件子系统结构)及其功能特性,包括指令系统(机器语言),以及寄存器定义、中断机构、输入输出方式、机器工作状态等。
硬件子系统的典型结构是冯·诺伊曼结构,它由运算器控制器、存储器和输入、输出设备组成,采用“指令驱动”方式。当初,它是为解非线性、微分方程而设计的,并未预见到高级语言、操作系统等的出现,以及适应其他应用环境的特殊要求。在相当长的一段时间内,软件子系统都是以这种冯·诺伊曼结构为基础而发展的。但是,其间不相适应的情况逐渐暴露出来,从而推动了计算机系统结构的变革。
计算机组织与实现是研究组成计算机的功能、部件间的相互连接和相互作用,以及有关计算机实现的技术,均属于计算机组织与实现的任务。
在计算机系统结构确定分配给硬子系统的功能及其概念结构之后,计算机组织的任务就是研究各组成部分的内部构造和相互联系,以实现机器指令级的各种功能和特性。这种相互联系包括各功能部件的布置、相互连接和相互作用。
随着计算机功能的扩展和性能的提高,计算机包含的功能部件也日益增多,其间的互连结构日趋复杂。现代已有三类互连方式,分别以中央处理器、存储器或通信子系统为中心,与其他部件互连。以通信子系统为中心的组织方式,使计算机技术与通信技术紧密结合,形成了计算机网络、分布计算机系统等重要的计算机研究与应用领域。
与计算实现有关的技术范围相当广泛,包括计算机的元件、器件技术,数字电路技术,组装技术以及有关的制造技术和工艺等。
软件软件的研究领域主要包括程序设计、基础软件、软件工程三个方面。程序设计指设计和编制程序的过程,是软件研究和发展的基础环节。程序设计研究的内容,包括有关的基本概念、规范、工具、方法以及方法学等。这个领域发展的特点是:从顺序程序设计过渡到并发程序设计和分币程序设计;从非结构程序设计方法过渡到结构程序设计方法;从低级语言工具过渡到高级语言工具;从具体方法过渡到方法学。
基础软件指计算机系统中起基础作用的软件。计算机的软件子系统可以分为两层:靠近硬件子系统的一层称为系统软件,使用频繁,但与具体应用领域无关;另一层则与具体应用领域直接有关,称为应用软件;此外还有支援其他软件的研究与维护的软件,专门称为支援软件。
软件工程是采用工程方法研究和维护软件的过程,以及有关的技术。软件研究和维护的全过程,包括概念形成、要求定义、设计、实现、调试、交付使用,以及有关校正性、适应性、完善性等三层意义的维护。软件工程的研究内容涉及上述全过程有关的对象、结构、方法、工具和管理等方面。
软件目动研究系统的任务是:在软件工程中采用形式方法:使软件研究与维护过程中的各种工作尽可能多地由计算机自动完成;创造一种适应软件发展的软件、固件与硬件高度综合的高效能计算机。