3.1 计算机科学概述

电子计算机虽然简称为“计算机”,它的早期功能也确实是计算,但后来的计算机已远远超越了单纯计算的功能,它还可以模拟思维、进行自适应反馈处理等等,故又俗称为“电脑”。实际上,计算机是一种能够对各种数字化信息进行高速运算和处理的系统。由于计算机功能的飞跃性发展,它应用于生产和生活的各个方面,直接和显著地提高了生产、工作和生活的效率、节奏和水平,在软科学研究和应用中,它也起着关键作用,因此它已被公认是现代技术的神经中枢,是未来信息社会的心脏和灵魂。

3.1.1 计算机科学发展简史

自从世界第一台电子计算机ENIAC在1946年2月14日宣告问世以来,越来越多的高性能计算机被研制出来。计算机已从第一代发展到了第四代,目前正在向第五代智能计算机、第六代生物计算机发展。

第一代计算机(1951~1958年):硬件上以电子管为逻辑器件,如图3-1所示。鉴于ENIAC的使用范围比窄,技术上还不能体现第一代计算机的特征,故以1951年出现的通用自动电子计算机(Universal Automatic Computer,UNIVAC)为标志。该机在1952年总统选举中通过分析5%的选票就断定艾森豪威尔将击败史蒂文森,从而使美国舆论明显地意识到进入了“计算机时代”。第一代计算机的系统软件还很少,不得不用机器语言或汇编语言编写程序,而不同计算机的语言又有较大差别。此外,通常只允许一名专业人员操作机器,CPU的利用率还很低。

图3-1 第一代计算机

第二代计算机(1959~1964年):硬件上以晶体管取代了电子管,使得机器体积减小而可靠性提高。1954年,美国贝尔实验室研制成功第一台使用晶体管线路的计算机,取名“催迪克”(TRADIC),装有800个晶体管磁盘,如图3-2所示。软件开始用操作系统和高级语言,因此,非专业人员开始使用计算机并开始用于数据处理和过程控制。

图3-2 第一台使用晶体管线路的计算机TRADIC

第三代计算机(1965~1970年):硬件上用中小规模集成电路取代了晶体管,使计算机体积进一步缩小而可靠性更高,操作系统更加完善,高级语言更加实用。数据通信把用户远程终端与远程计算机联系起来,出现了大范围网络。

第四代计算机(1971~现在):进入大规模集成电路的微处理器时代后,微型计算机大量涌现。中大型机也从以CPU为中心发展为以存储器为中心的系统结构,并开发了多处理器系统。软件技术扮演越来越重要的角色,软件工程进入实用化。数据库技术和网络技术都取得了很大的发展。

第五代智能计算机:1981年,在日本东京召开了第五代计算机研讨会,随后制订出研制第五代计算机的长期计划。第五代计算机的系统设计中考虑了编制知识库管理软件和推理机,机器本身能根据存储的知识进行判断和推理。同时,多媒体技术得到了广泛应用,使人们能用语音、图像、视频等更自然的方式与计算机进行信息交互。智能计算机的主要特征是具备人工智能,能像人一样思维,并且运算速度极快,其硬件系统支持高速并行和推理,其软件系统能够处理知识信息。神经网络计算机(也称神经元计算机)是智能计算机的重要代表。

第六代生物计算机(又称仿生计算机):其主要原材料是借助生物工程技术(特别是蛋白质工程)生产的蛋白质分子,以它作为生物集成电路——生物芯片。在生物芯片中,信息以波的形式传递。当波沿着蛋白质分子链传播时,会引起蛋白质分子链中单键、双键结构顺序的改变。因此,当一列波传播到分子链的某一部位时,它们就像硅集成电路中的载流子(电流的载体叫做载流子)那样传递信息。与普通计算机不同的是,由于生物芯片的原材料是蛋白质分子,所以,生物计算机芯片既有自我修复的功能,又可直接与生物活体结合。同时,生物芯片具有发热少、功能低、电路间无信号干扰等优点。

计算机科学的创始人被公认为是英国数学家图灵(Alan Mathison Turing,1912~1954),1936年他提出图灵机模型。人们知道,普通计算机都是一种自动计算装置,理论上曾提出过多种计算模型,其中最有普遍性而且功能最强的模型就是图灵机。普通计算机的存储器是有限的,而图灵机的存储器是无限的。已经证明,普通计算机的计算能力不会超过图灵机,图灵机只能计算递归函数,普通计算机大量遇到的正是这类函数。但是还存在图灵机不能计算的非递归函数,图灵本人就找到过这样的函数,普通计算机肯定也不能求解这类问题。此外,由于实际机器的许多物理限制,即使理论上由图灵机可解的一些问题,在普通计算机上也是“实际上”不可解的。

计算机科学根植于电子工程、数学和语言学,是科学、工程和艺术的结晶。它在20世纪最后的30年间兴起成为一门独立的学科,并发展出自己的方法与术语。早期,虽然英国的剑桥大学和其他大学已经开始教授计算机科学课程,但它只被视为数学或工程学的一个分支,并非独立的学科。世界上第一个计算机科学系由美国的普渡大学在1962年设立,第一个计算机学院于1980年由美国的东北大学设立。现在,多数大学都把计算机科学系列为独立的部门,一部分将它与工程系、应用数学系或其他学科联合。目前,在计算机科学领域排名世界前五的大学是:麻省理工大学、斯坦福大学、加州大学伯克利分校、卡耐基梅隆大学和康奈尔大学。

计算机科学领域的最高荣誉是美国计算机协会(Association of Computing Machin-ery,ACM)设立的图灵奖,被誉为计算机科学的诺贝尔奖。从1966年开始,每年奖励在计算机科学上获得突出成就的科学家。华人中首获图灵奖的是姚期智先生,他于2000年以其对计算理论做出的诸多“根本性的、意义重大的”贡献而获得这一崇高荣誉。

计算机科学研究受到各国政府的重视,许多国家都制定了长期发展规划。许多著名的计算机公司,如IBM公司、AT&T的贝尔(Bell)实验室都对计算机科学的发展做出了重要的贡献。

3.1.2 计算机的分类与计算机科学的研究领域

1.计算机的分类

一个计算机系统由硬件和软件两部分组成。硬件是由电子的、机械的、磁性的器件组成的物理实体,软件是程序和有关文档的总称。硬件是软件赖以工作的物质基础,软件的正常工作是硬件发挥作用的唯一途径。计算机系统必须要配备完善的软件系统才能正常工作,也才能充分发挥硬件的各种功能。由于计算机的种类繁多,通常按用途、规模或处理对象等对计算机的类别进行划分。

(1)按用途划分

1)通用机:用于解决多种一般问题。该类计算机使用领域广泛、通用性较强,在科学计算、数据处理和过程控制等多种领域中都能适用。

2)专用机:用于解决某个特定方面的问题,配有为解决某问题的软件和硬件。如在生产过程自动化控制、工业智能仪表等方面的专门应用。

(2)按规模划分

1)巨型计算机:用于石油勘探、国防尖端技术和现代科学计算中。巨型机的运算速度可达每秒百万亿次,研制巨型机是衡量一个国家经济实力和科学水平的重要标志。

2)大/中型计算机:具有较高的运算速度,每秒可以执行几千万条指令,而且有较大的存储空间,往往用于科学计算、数据处理或作为网络服务器使用。

3)小型计算机:规模较小、结构简单、运行环境要求较低。一般应用于工业自动控制、测量仪器、医疗设备中的数据采集等方面。小型机在作为巨型计算机系统的辅助机方面也起了重要作用。

4)微型计算机:中央处理器(CPU)采用微处理器芯片,体积小巧轻便,广泛用于商业、服务业、工厂的自动控制、办公自动化以及大众化的信息处理。

5)工作站:以个人计算环境和分布式网络环境为前提的高性能计算机。工作站不单纯是进行数值计算和数据处理的工具,而且是支持人工智能作业的作业机,通过网络连接包含工作站在内的各种计算机可以互相进行信息的传送,资源、信息的共享,负载的分配。

6)服务器:在网络环境下为多个用户提供服务的共享设备,一般分为文件服务器、打印服务器、计算服务器和通信服务器等。

(3)按处理对象划分

1)数字计算机:计算机处理时输入和输出的数据都是数字量。

2)模拟计算机:处理的数据对象直接为连续的电压、温度、速度等模拟量。

3)数字模拟混合计算机:输入和输出既可以是数字量也可以是模拟量。

2.计算机科学的研究领域

计算机科学研究的课题是:计算机程序能做什么和不能做什么(可计算性);如何使程序更高效地执行特定任务(算法和复杂性理论);程序如何存取不同类型的数据(数据结构和数据库);程序如何显得更具有智能(人工智能);人类如何与程序沟通(人机互动和人机界面)。

目前,计算机科学的研究领域可以概括为以下七个方面:

(1)计算机系统结构的研究

传统的计算机系统基于冯·诺依曼的顺序控制流结构,从根本上限制了计算过程并行性的开发和利用,迫使程序员受制于“逐字思维方式”,从而使程序复杂性无法控制,软件质量无法保证,生产效率无法提高。因此,对新一代计算机系统结构的研究是计算机科学面临的一项艰巨任务。人们已经探索了许多非冯·诺依曼结构,如并行逻辑结构、归约结构和数据流结构等。

智能计算机以及其他新型计算机的研究也具有深远的意义,例如光学计算机、生物分子计算机和化学计算机的潜在影响是不可忽视的。计算机构造学正在发展中。

(2)程序设计科学与方法论的研究

冯·诺依曼系统结构决定了传统程序设计风格的缺陷,逐字工作方式,语言臃肿无力,缺少必要的数学性质。新一代语言要从面向数值计算转向知识处理,必须从冯·诺依曼设计风格中解放出来。这就需要分析新一代系统语言的模型,设计出新的语言,再由新的语言推出新的系统结构。

(3)软件工程基础理论的研究

软件工程的研究对软件生存期作了合理的划分,引入了一系列软件开发的原则和方法,取得了较明显的效果,但未能从根本上解决“软件危机”问题。软件复杂性无法控制的主要原因在于软件开发的非形式化。为了保证软件质量及开发维护效率,程序的开发过程应是一种基于形式推理的形式化构造过程。从要求规范的形式描述出发,应用形式规范导出算法版本,逐步求精,直至得到面向具体机器指令系统的可执行程序。由于形式规范是对求解问题的抽象描述,信息高度集中,简明易懂,使软件的可维护性得到了提高。显然,形式化软件构造方法必须以科学的程序设计理论和方法为基础,以集成程序设计环境为支持。近年来这些方面虽取得了不少进展,但距离形式化软件开发的要求还相差甚远。因此,这方面仍有不少难题有待解决。

(4)人工智能与知识处理的研究

人工智能的研究正将计算机技术从逻辑处理推向现实世界中自然产生的启发式知识处理,如感知、推理、理解、学习、解决问题等。为了建立以知识为基础的系统,提高计算机解决问题的综合能力,以启发式知识表达为基础的程序语言和程序环境的研究就成为普遍关心的重要课题。

人工智能还包括许多分支领域,如机器视觉、听觉、触觉以及力觉的研究,模式识别与图像处理的研究,自然语言理解与语音合成的研究,智能控制以及生物控制的研究等。总之,人工智能向各方面的深化,对计算机技术的发展将产生深远的影响。

(5)网络、数据库及各种计算机辅助技术的研究

计算机通信网络覆盖面的日趋扩大,各行业数据库的深入开发,各种计算机辅助技术如计算机辅助设计(Computer Aided Design,CAD)、计算机辅助制造(Computer Aided Manu-facturing,CAM)和计算机集成制造系统(Computer Integrated Manufacturing System,CIMS)等的广泛使用,为计算机科学提出了许多值得研究的问题,如编码理论、数据库的安全与保密、异种机联网与网间互联技术、显示技术与图形学、图像数据压缩、存储及传输技术的研究等。

(6)理论计算机科学的研究

自动机及可计算性理论的研究,例如图灵机的理论研究还有许多工作可做。理论计算机科学使用的数学工具主要是信息论、排队论、图论和符号逻辑等,这些工具本身也需进一步发展。

(7)计算机科学史的研究

在计算机科学的发展史上,有许多对认识论、方法论值得借鉴的史料,它们同样是人类精神宝库的重要财富。

计算机科学与技术学科虽然只有短短的几十年历史,与数学、物理学等学科相比,还是一门很年轻的学科,但是,它已经具有相当丰富的内容,并且正迅速成长为一个覆盖面最广的基础学科。

3.1.3 计算机的特点和应用

1.计算机的主要特点

1)处理速度快:计算机的运算速度用MIPS(每秒钟执行多少百万条指令)来衡量。

2)计算精度高:数的精度主要由表示这个数的二进制码的位数决定。

3)记忆能力强:存储器能存储大量的数据和计算机的程序。内部记忆能力是计算机与其他计算工具的一个重要区别。

4)可靠的逻辑判断能力:具有可靠的逻辑判断能力是计算机的一个重要特点,是计算机能实现信息处理自动化的重要原因。

5)自动控制:计算机内部的操作运算全是根据人为事先编制好的程序自动控制进行的。

2.计算机的主要应用

1)数值计算。计算机广泛地应用于科学和工程技术方面的数值计算,这是计算机应用的一个基本方面,如人造卫星轨迹计算、导弹发射的各项参数的计算和房屋抗震强度的计算等。

2)数据处理。在计算机应用普及的今天,计算机更多地应用在数据处理方面。目前,文字处理软件、电子报表软件的使用已非常广泛,在办公自动化方面发挥着巨大作用。

3)自动控制。自动控制也是计算机应用的一个重要方面。在生产过程中,采用计算机处理信息,进行自动控制,可以大大提高产品的数量和质量、提高劳动生产率、改善人们的工作条件、节省原材料的消耗、降低生产成本等。

4)辅助工程。CAD、CAM和CIMS是计算机辅助工程的三个重要方面。CAD是借助计算机进行设计的一项实用技术,采用CAD可实现设计过程的自动化或半自动化。CAM是借助计算机帮助人们完成工业产品的制造任务。CIMS是将计算机技术集成到制造企业的整个制造全过程中,并综合运用现代管理技术、制造技术、信息处理技术、自动化技术和系统工程技术,将企业生产全部过程中有关的人、技术、经营管理三要素及其信息与物流有机集成并优化运行的复杂的大系统。计算机辅助工程可缩短工程周期,提高工程效率,保证工程质量。

5)辅助教学。计算机辅助教学(Computer Aided Instruction,CAI)是利用计算机对学生进行教学。CAI的专用软件称为课件。从课件的制作到远程教学,从辅助学生自学到辅助教师授课等,均可在计算机的辅助下进行,从而提高教学质量和效率。

6)人工智能。计算机有记忆能力,又擅长逻辑推理,因此计算机可以对人的思维信息过程进行模拟。这就是计算机的人工智能。例如,在很多场合下,装上计算机的机器人可以代替人们进行繁重、危险的体力劳动和部分简单重复的脑力劳动。

7)计算机通信。计算机通信是计算机技术与通信技术结合的产物,计算机网络技术的发展将处在不同地域的计算机用通信线路连接起来,配以相应的软件,达到资源共享的目的。

8)娱乐活动。人们可以在多媒体计算机上看电视、看VCD、听音乐、玩游戏、在网上和朋友聊天等。