计算机语言分类
几十年来,程序设计语言发展迅速,出现了各种各样的程序语言。如, 按语言级别,有低级语言和高级语言之分。低级语言主要包括机器语言和汇编语言,它们的特点是与特定机器有关,功效高,但使用复杂、繁琐、费时、易出错。其中,机器语言是表示成数码形式的机器基本指令集,或是操作码经过符号化的基本指令集。汇编语言实质上是机器语言的符号化,进一步包括宏语句等。
高级语言的表示方法比较接近于待解问题的表示方法,在一定程序上与具体机器无关,易学、易用、易维护。
按用户要求,有过程式语言和非过程式语言之分。过程式语言的主要特征是,用户可以描述一系列可顺序执行的运算,以表示相应的计算过程。例如,FORTRAN,AL-GOL60,COBOL,PASCAL,C 等都是过程式语言。凡是用户无法指明表示计算过程的一系列可顺序执行的运算的语言,都是非过程式语
言。例如结构化查询语言 SQL,只要用户给出查询范围、查询条件和查询对象,完全不必指明“如何去查询”的具体操作系列,便可自动获得所需的查询结果。
按应用范围,有通用语言和专用语言之分。目标非单一的语言称为通用语言。如 FORTRAN,ALGOL60,COBOL,PASCAL,C 等都是通用语言。目标单一的语言称为专用语言,如自动数控程序工具语言 APT,就是专门用于数控机床加工的语言。
按使用方式,有交互式语言和非交互式语言之分。具有反映人—机交互作用的语言成分的语言称为交互式语言。语言成分未反映人—机交互作用的称为非交互式语言,例如,BASIC、APL 就是交互式语言,而 FORTRAN、AL- GOL60、COBOL、BASCAL,C 等都是非交互式语言。
按语言成分的性质,有顺序语言,并发语言和分布语言及面向对象语言之分。仅含顺序成分的语言称为顺序语言,如 FORTRAN、 ALGOL60、 COBOL 等都是顺序语言。含有并发成分的语言称为并发语言,如并发 PASCAL、MODULA、ADA 等都属并发语言。考虑到分布处理和通信要求的语言称为分布式语言,如 CSP、 SR、 DP、* MOd 等。支持对象、类和类的继承性的语言称为面向对象语言。
随后又出现了函数式语言,如 LISP;逻辑程序设计语言,如 PROLOG; 面向对象语言,以及第四代程序语言 4GL。所谓 4GL 意指具有最灵活的界面, 最丰富的功能,用很少的时间获得很高效率的一类非过程式语言。如 SQL、FORTH 等都视为第四代程序语言。
随着计算机的飞速发展,程序设计语言也迅速发展起来。它从机器语言、汇编语言,到高级语言,即从与机器密切有关的语言,向着独立于机器的面向问题语言变迁。COBOL 语言作为面向问题语言之一,就是专门为事务处理制定的一种通用语言。随着企业的发展,机械能力的增大,计算机要担负的事务处理内容也越来越大。当要求与功能更强的系统交换信息时,不论使用哪一种计算机,程序依旧能照常运行,这便要求语言具有互换性。由于经营活动的较大变动和不断开拓,需要对业务内容修正时,为了能顺利地进行修正、更改,这就要求其语言的描述简明易懂。在业务迅速扩展的情况下,有时还需要在短时期内编写较多的程序,使那些不太成熟的程序员也能在较短的时间内编制出程序来,这就要求语言具有平易性。
机器语言的变迁和人类语言的发展,都是一门复杂的科学。当一个孩子从呱呱坠地的那一天起,他就开始在适应自然界的过程中,逐步了解,逐步学习,逐步实践这门科学,那是他在这个世界上生存和发展的需要。而程序设计语言的发展,也是人类为适应未来世界计算机的应用所必须研究的一门科学,这门科学是打开新世纪天窗的一把钥匙。
- 软件危机
程序设计语言虽然为计算机的应用开拓了无比广阔的前景,但游荡在软件世界的幽灵——“软件危机”依然存在。因为软件的开发不仅受到程序设计的方法、结构的制约,而且受到开发周期以及软件开发成本的限制,更重要的是软件质量的保障与其程序设计的正确性关系极大。如果所开发的软件其可靠性得不到保障,在运行中将会产生不堪设想的严重后果。
60 年代中期以后,计算机硬件技术日益进步,计算的存贮容量、运算速度和可靠性明显提高,生产硬件的成本不断降低。计算机价格的下跌为它的广泛应用创造了极好的条件。在这种形势下,迫切要求计算机软件也能与之相适应。因而,一些开发大型软件系统的要求提了出来。然而软件技术的进步一直未能满足形势发展的需要,在大型软件的开发过程中出现了复杂程度高、研制周期长、正确性难以保证的三大难题。遇到的问题找不到解决办法, 致使问题堆积起来,形成了人们难以控制的局面,出现了所谓的“软件危机”。
最为突出的例子是美国 IBM 公司于 1963 年~1966 年开发的IBM360 系列机的操作系统。该软件系统花了大约 5 000 人一年的工作量,最多时,有 1000
人投入开发工作,写出近 100 万行的源程序。尽管投入了这么多的人力和物力,得到的结果却极其糟糕。据统计,这个操作系统每次发行的新版本都是从前一版本中找出 1000 个程序错误而修正的结果。可想而知,这样的软件质量糟到了什么地步。
难怪该项目的负责人 F·D·希罗克斯在总结该项目时无比沉痛地说: “⋯⋯正像一只逃亡的野兽落到泥潭中作垂死挣扎,越是挣扎,陷得越深, 最后无法逃脱灭顶的灾难,⋯⋯程序设计工作正像这样一个泥潭⋯⋯一批批程序员被迫在泥潭中拼命挣扎,⋯⋯,谁也没有料到问题竟会陷入这样的困境⋯⋯。” IBM360 操作系统的历史教训已成为软件开发项目中的典型事例被记入历史史册。
如果开发的软件隐含错误,可靠性得不到保证,那么在运行过程中很可能对整个系统造成十分严重的后果,轻则影响到系统的正常工作,重则导致整个系统的瘫痪,乃至造成无可挽回的恶性事故。如,银行的存款可能被化为乌有,甚至弄成赤字;工厂的产品全部报废,导致工厂破产。
1963 年,美国用于控制火星探测器的计算机软件中的一个“,”号被误写为“·”,而致使飞往火星的探测器发生爆炸,造成高达数亿美元的损失。
为了克服这一危机,一方面需要对程序设计方法、程序的正确性和软件的可靠性等问题进行系列的研究;另一方面,也需要对软件的编制、测试、维护和管理的方法进行研究,从而产生了程序设计方法学。
1968 年,E·W·代克斯特拉首先提出“GOTO 语句是有害的”论点,向传统程序设计方法提出了挑战,从而引起了人们对程序设计方法讨论的普遍重视。众多著名的计算机科学家都参加了这种讨论。程序设计方法学也正是在这种广泛而深入的讨论中逐渐产生和形成的。
什么是程序设计方法学呢?简言之,程序设计方法学是讨论程序的性质、程序设计的理论和方法的一门学科。它包含的内容比较丰富,例如,结构程序设计,程序正确性证明,程序变换,程序的形式说明与推导、程序综合、自动程序设计等。在程序设计方法学中,结构程序设计占有十分重要的地位,可以说,程序设计方法学是在结构程序设计的基础上逐步发展和完善起来的。
什么是结构程序设计呢?至今仍众说纷纭,还没有一个严格的,又能被大家普遍接受的定义。1974 年,D·格里斯将已有的对结构程序设计的不同解释归结为 13 种,其中,比较有代表性的如下:
结构程序设计是避免使用 GOTO 语句的一种程序设计; 结构程序设计是自顶向下的程序设计;
结构程序设计是一种组织和编制程序的方法,利用它编制的程序易于理
解、易于修改;
程序结构化的一个主要功能是使程序正确性的证明容易实现;
结构程序设计对设计过程中的每一步去验证其正确性,这样便自动导致自我说明和自我捍卫的程序设计风格;
总之,结构程序设计讨论了如何将大规模的和复杂的流程图转换成一种标准的形式,使得它们能够用几种标准的控制结构(通常是顺序、分支和重复)通过重复和嵌套来表示。
上述定义或解释从不同角度反映了结构程序设计所讨论的主要问题。实质上,结构程序设计是一种进行程序设计的原则和方法,按照这种原则和方法可设计出结构清晰、容易理解、容易修改、容易验证的程序。
按照结构程序设计的要求设计出的程序设计语言称为结构程序设计语言。利用结构程序设计语言,或者说按结构程序设计的思想和原则编制出的程序称为结构化程序。
在 60 年代末和 70 年代初,关于 GOTO 语句的用法的争论比较激烈。主张从高级程序语言中去掉 GOTO 语句的人认为,GOTO 语句是对程序结构影响最大的一种有害的语句,他们的主要理由是:GOTO 语句使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错。去掉 GOTO 语句后,可直接从程序结构上反映程序运行的过程。这样,不仅使程序结构清晰,便于理解, 便于查错,而且也有利于程序的正确性证明。
持反对意见的人认为,GOTO 语句使用起来比较灵活,而且有些情形能提高程序的效率。若完全删去 GOTO 语句,有些情形反而会使程序过于复杂,增加一些不必要的计算量。
1974 年,D·E·克努斯对于 GOTO 语句争论作了全面公正的评述,其基本观点是:不加限制地使用 GOTO 语句,特别是使用往回跳的 GOTO 语句,会使程序结构难于理解,在这种情形,应尽量避免使用 GOTO 语句。但在另外一些情况下,为了提高程序的效率,同时又不致于破坏程序的良好结构,有控制地使用一些 GOTO 语句也是必要的。用他的话来说就是:“在有些情形,我主张删掉 GOTO 语句;在另外一些情形,则主张引进 GOTO 语句。”从此,使这场长达 10 年之久的争论得以平息。
后来,G·加科皮尼和 C·波姆从理论上证明了:任何程序都可以用顺序、分支和重复结构表示出来。这个结论表明,从高级程序语言中去掉 GOTO 语句并不影响高级程序语言的编程能力,而且编写的程序的结构更加清晰。
结构程序设计的思想体现在采用了一些比较行之有效的方法,在这些方法中较有代表性的是“逐步求精”方法。所谓“逐步求精”方法,就是在编制一个程序时,首先考虑程序的整体结构而暂时忽略一些细节问题,然后逐步地一层一层地细化直至用所选用的语言完全描述每一个细节,即得到所期望的程序为止。换言之,它是按照先全局后局部、先整体后细节、先抽象后具体的过程组织人们的思维活动,使得编写出的程序结构清晰、容易理解、容易验证、容易修改。“逐步求精”方法与模块化设计方法既有联系又有区别。粗略地讲,逐步求精主要指一个程序的设计过程,而模块化设计主要指比较大的系统的设计过程。
此外,面对“软件危机”,人们调查研究了软件生产的实际情况,逐步感到采用工程化的方法从事软件系统的研究和维护的必要性,于是与程序设计方法学密切相关的软件工程在 1968 年应运而生。软件工程的主要对象是大
型软件。软件工程研究的内容主要包括:软件质量保证和质量评价;软件研制和维护的方法、工具、文档;用户界面的设计以及软件管理等。软件工程的最终目的是摆脱手工生产软件的状况,逐步实现软件研制和维护的自动化。
- 计算机的第二次革命
70 年代微型计算机的出现,被人们称之为电子计算机的第二次革命。那些既宜于大量生产,成本又很低廉的大规模集成电路,激发了计算机专家们的探索精神。美国英特尔公司于 1971 年 11 月成功地把算术运算器和逻辑控制电路集成在一起,发明了世界上第一片微处理器 Intel 4004—MPU,此后就用它来构成微型计算机系统。
1971 年微型机采用的器件还是 PM08 大规模集成电路,1975 年出现了高速低耗的双极型集成电路,以后几乎每年都有新型微机问世,字长从 4 位扩
展到 8 位。
第二代微型机始于 1973 年,其体系结构有了较大变革,使微型机进入成熟和实用阶段。最有影响的微处理器是 Intel 公司的 8080、 Motorola 公司的 6800 以及 Zilog 公司的 Z—80,用它们组成的微机都是 8 位机。这三家公司 70 年代相继推出的以 8086、 MC68000 和 Z—8000 微处理器组成的 16 位机,称为第三代微型机。其集成度从每片 1 万晶体管提高到 2~6 万晶体管, 指令平均执行时间从 1~2us 加速到 0.5us,提高了一个数量级。因为它的可带软盘和硬盘,功能大大加强。到 80 年代初,16 位机过渡到 32 位,形成第四代微型机。现已出现便携式、膝上型、掌上型、袖珍型微机。
微型机以其体积小,功能强,灵活性大,价格便宜,使用方便显示出强大的生命力,向中小型计算机提出严重挑战。在很短时间内,微型机的应用范围急剧扩大,从进入太空的航天器到社会家庭生活的各个方面,尤其在分布式数据库、局域计算机网络、办公自动化等事务处理中大显身手。
目前,我们已看到微机应用于各行各业、各个领域:那些献身于国防尖端事业的科学家轻轻一按电钮就输送人造卫星上天;那些西服革履的企业家在办公室里通过微机遥控指挥着各个车间的生产;那些“白领”、“蓝领” 族坐在微机前操纵着流水线作业;那些妙龄小姐利用微机打字、绘图、排版、调用文书档案资料;就连银行存款取款、邮局里邮件处理乃至家庭日用品的操纵也都用微机进行控制。我们周围的一切一切正在发生着深刻的变革,那种小作坊的手工劳作、那种肩挑人扛的奋斗年代、那种人们不停地劳累奔波的情景,都将成为历史的镜头存留在往事的记载中和人们的记忆里。
微型机已成为人类社会现代化的重要标志。4.广为使用的软件平台
微机的普及就像一场春雨下过之后,千树披绿,万物生辉,给科技领域带来一派欣欣向荣的春天景象。然而,从微机应用于各行各业、走进了千家万户之时起,人们便开始寻求一种简单实用、使用方便、结构灵活,而且功能比较齐全的分时操作系统。 Unix 操作系统便是这样一个简便实用的操作系统,它一直深受用户的厚爱。
UniX 操作系统是一个通用的、多用户的分时操作系统。最早的版本,是1969 年由贝尔实验室的 K·Thompson 在一台闲置的 PDP—11 计算机上发展起来的。不久,他又与 D·M·Ritchie 等一起联合起来研制了早期的 Unix 版本。
D.M.RitChie 过去曾参加过 MultiCS 操作系统——这项对现代计算机领域具有创新意义的设计工作,因此,Multics 对 Unix 操作系统有直接和深刻的影响,甚至连 U-nix 这个名字简直就是 Multics 的双关语。Unix 中文件系统的基本组织,命令解释器(Shell)作为一个用户进程的思想,对每个命令使用单独的进程,原始的行编辑字符,以及许多其它特征都是直接来自Multics 的。当然,Unix 中还用到其它一些操作系统(如麻省理工学院的CTSS、美国加州大学伯克利分校研制的 XDS—940 操作系统等)的设计思想。
为了研制 Unix 系统,Thompsom 和 Ritchie 默默地工作了许多年。他们利用在第一版上的工作基础,把它移植到 PDP—11/20 计算机上,形成了 Unix 的第二版。第三版则采用程序设计语言 C 替代早期的汇编语言,重写了该操作系统的绝大部分(C 语言是在贝尔实验室开发出来的,并用以支持 Unix)。随后,Unix 被移植到较大的 PDP—11 计算机系统,如 PDP— 11/45 和 PDP
- 11/70 计算机上。当用 C 语言重写后并将它移植到具有支持多道程序硬件环境的计算机系统时,还加入了多道程序设计及其它一些功能。
随着 Unix 的发展,Unix 在贝尔实验室内得到了广泛应用,并且逐渐地扩散到一些大学中去。第一个在贝尔实验室之外得到广泛应用的版本是 1976 年推出的第六版。1978 年推出了第七版。这个版本的 Unix 操作系统是在 PDP 一 11/70 和 Interdata 8/32 计算机上运行的,可以说,它是大多数现代 Unix 操作系统的先驱。该版本很快就被移植到其它的 PDP— 11 系列计算机和VAX 系列计算机上。可在 VAX 系列计算机上运行的版本又称 Unix 32V。
1978 年的第七版推出后,Unix 支持小组(USG)取得了 Unix 的管理权和在 AT&T 公司内推销 Unix 的权力(AT&T 公司是贝尔实验室的上级机关)。于是 Unix 变成了一种产品,而不再仅仅是一种研究工具。之后,Unix 操作系统研制组仍继续研究他们自己的 Unix 版本,迄 1985 年止,由该小组开发的 Unix 操作系统已是第八版。现在,又研制出了第十版。
USG 主要对 AT&T 公司内的 Unix 操作系统提供支持。 USG 向外推出的第一个版本是 1982 年开发的 SystemⅢ。SystemⅢ不仅结合了第一版、32V 和许多其他 Unix 版本的特点,而且还包含了一个实时 Unix 操作系统Unix/RT,及程序员工作台(PWB)的许多组成部分。USG 于 1983 年推出 System Ⅴ,它大部分是由 SystemⅢ导出的。由于许多贝尔实验室的下属子公司脱离了 AT&T,这就使得 AT&T 处于占有 SystemⅤ的市场的不利地位,于是, USG 改名为“Unix 系统发展实验室”(USDL),由该实验室推出的新版本是于 1984年研制的 Unix SystemⅤ的第二版Ⅴ·2。
小巧灵珑、模块化和清晰的早期 Unix 系统设计,使得许多计算机科学团体在其基础上展开了大量的卓有成效的研究,如 Rand、BBN、伊利诺斯大学、哈佛大学、普渡大学、甚至世界第二大计算机公司 DEC 等。如今,影响最大的非贝尔实验室和非AT&T 公司的Unix 开发组织是美国加州大学的伯克利分校。最初的 VAX UniX 开发工作是由 B.Joy 和 Q. Babaoglu 于 1978 年,通过在 32V 上增加虚拟存贮管理、请示调页和页面替换等功能而产生的 3BSD
(Berkeley Software Distributions)。3BSD 的巨大虚拟存贮空间,使得设计、开发、研制大型程序(如伯克利分校自己的 FranzLISP)成为可能。
这一出色的内存管理工作使得美国国防先进技术研究规划总署(DARPA)大为欣赏,于是,他们决定拨巨资请伯克利大学为政府部门研制一个标准的 Unix 操作系统——4BSD。
为 DARPA 研制的 4BSD 的设计目标之一就是为 DAPRA 的 Internet 网络协议(TCP/IP)提供支持。4·2BSD 使得各种不同的网络设备之间不经变化就可以进行通信,这些网络包括局域网(如以太网和令牌网)和远程网(如 DARPA 的 Arpanet)。此外,为了改进 Unix 的设计和实现,伯克利吸收了同期许多操作系统的优点,还设计了一个新的用户界面 C shell,一个新的文本编辑程序 ex/Vi,一个 PASCAL 和 LiSP 编译程序,以及许多新的系统程序。由于4·2BSD 卓有成效的一些改进,使得人们将它与 VMS 操作系统相提并论。
出自伯克利的 Unix 操作系统版本最著名的有 4·1BSD 和现在的 4·2BSD。类编号 2BSD 和 4BSD 是用于伯克利 UniX 的 PDP—11 和 VAX 的版本。尽管进一步的研究仍在伯克利继续进行,但于 1983 年首次推出的 4·2BSD 的确是早期伯克利 DARPA Unix 的设计高峰。 4BSD 操作系统从它的最初版本(1979 年)到 SystemⅢ(1982 年)都被选作 VAX 系列的操作系统。对许多研究和网络配置来说,4BSD 至今仍是最好的选择。
现今的 Unix 系统已被移植到许多不同的机器和计算机系统中,产生了许多种不同的 Unix 和类 Unix 操作系统。DEC 公司在 VAX 系列机上开发了它的Unix—Ultrix,Microsoft 公司为 Intel80 重写了 Unix 并称之为 XENIX,IBM 公司把 Unix 用于它的 PC 机和它的主机系列。Unix 同样可从 Amdahl、SUN、NBI、MassComp、HP、Gould、Data General、Perkin—Elmer、AT&T 及大量其它卖主得到。这些 Unix 系统大多数是在第 7 版本、 System Ⅲ、 4· 2BSD 或 SystemⅤ的基础上开发出来的。时至 90 年代,AT&T 已对 SystemⅤ名称标准化,其最近公布的版本为 SystemⅤRelease3 和 SystemⅤRelease 4 ,通常分别简写为 SVR3 和 SVR4。最近, AT&T 贝尔实验室开发了一种新版本—
—第 10 版,或称“研究版 Unix 系统”,尽管这一版本尚未售出,但它已在各大学广为扩散。
Unix 系统的三个主要变形的合并是从 SVR3 开始的,而这一合并到 SVR4 几乎达到完美的程度。目前,经 AT&T、SUN 和 Microsoft 三方同意,BSD 和XENIX 系统合并为 SystemⅤ产品;为 BSD 或 XENIX 设计的绝大多数软件无需修改便可在 SVR4 系统上运行。SVR4 版本是 AT&TUnix 系统中最先进的版本, 它已移植到绝大多数主机上,而且是 AT&T 系列的现行标准。SVR4 在原有版本上进行了大量的改进和增强,例如添加了对局域网的全面支持,提供了一个高性能的图形用户界面(GUI)—X 窗口系统,增加了许多新命令,允许实时进程和微计时器,设计了一种新的 ANSIC 编译程序等等。
Unix 操作系统本来是为计算机科学实验而发明的,但二十多年来,它已逐步发展为当代最富影响的、广为流传的计算机环境之一。如今有一百多万台计算机使用 UniX,而且机型从微机、小型机到大型机以至巨型机。其增长势头还在逐步加快。用户和程序开发者们都为其惊人的灵活性、工作能力和优雅程度惊叹不已。Unix 系统在不太长的时间内取得如此大的成功,原因之一是它问世之日正是人们开始使用分时操作系统,并正在寻求一个功能齐全、灵活方便、大小适中的系统之时,所以 Unix 系统是生逢其时。原因之二是 Unix 系统是在 PDP—11 系列机上开发出来的,而这种机型当时在世界各国得到广泛应用,并曾占有小型机的主要市场,这就为 Unix 的广泛推广提供了
条件。原因之三是它具有如下一些极好的特点和性能。
①在设计思想和所采用的技术方面,它坚持采用精选、提炼和改造现有比较成熟的方法和技术,不搞太多的标新立异。在具体设计时,坚持“小而美”,不搞“大而全”,即着眼于为用户提供由多种可组合使用的工具而构成的一个程序设计环境。
②UniX 系统在结构上分为两部分:内核和核外部分。内核是 Unix 中唯一不能由用户任意变化的部分,包括:存贮管理、进程管理、设备管理和文件系统。核外部分包括各种语言处理程序、其它系统实用工具,软件开发工具,用户自编程序经编译、连接而形成的各种可执行目标程序也属于核外程序。内核精干,占用内存少,且常驻内存。这就从根本上保证了系统能够以较高效率运行。同时,内核与核外部分有机结合,形成一体,向用户提高各种服务,其功能完全可以与某些大型操作系统媲美。
③UniX 具有树形结构的文件系统,它由基本文件系统和可装卸的若干子文件系统组成,这既能扩大文件存贮空间,又有利于安全保密。而且在 Unix 中,文件和设备都统一作为文件处理,它们在用户面前具有相同的语法和语义,用户可以按需任意组织其文件格式,对文件既可进行顺序读写,又可进行随机存取。这样既简化了系统设计又利于用户使用。
④Unix 具有良好的用户界面,它提供两种用户界面:Shell 和系统调用。命令程序设计语言 Shell 不但具有一般命令语言的功能,而且还具有某些程序设计语言的特点,使用方便。系统调用是用户在编写程序时可以使用的界面。Unix 在汇编语言级和 C 语言级上向用户提供这种界面,用户可以把它们看作是 C 语言的一部分加以应用。
⑤系统基本上用高级语言编写,可移植性好。
Unix 在操作系统的理论及实践中已经具有且将继续保持重要的地位。Thompson 和Ritchie 也由于他们在U-nix 上所作出的卓越贡献而于 1983 年共同获得图灵奖。
Unix 操作系统灵活方便、功能强,可移性好,适用于大、中、小、微等各种机型,在当前开放系统潮流中,它将越来越接近于成为操作系统的一种国际标准,是当前公认的一个软件平台。我国已出版发行了 Unix 系统 SVR4 版的全套中文资料,这必将推动 Unix 在我国的广泛应用及相关研究工作的开展。
- 日本第五代智能计算机
社会总是不断向前发展的,自然界也总在不断地弃旧图新。因此,人类要不断地总结经验,有所发现,有所发明,有所创造,有所前进,永远不能停止在现有的水平之上。现代科学技术的发展、计算机的研究都是如此。
在人工智能的发展史上,有一个对世界都产生了重要影响的计划,即始于 1982 年,终于 1992 年的日本第五代计算机(FGCS)研究计划,由于其目
标具有想象性,而且对是否能实现目标始终持有怀疑,因此,这项耗资达 500
亿日元、历时 10 年的计划一开始就有争议。
70 年代末,日本人认为:日本的计算机技术已达到最新水平,此时不应去追赶欧美最新技术来提高日本工业竞争能力,而应冒险地去发展领先技术,为科学做贡献。在这种背景下,1979 年成立了第五代计算机研究委员会,
并于 1981 年底对计划的目标技术和框架作出决策。委员会先后召开了 100 多次会议,讨论了下列即将开发的重要计算机技术:
知识处理的计算机推理技术;
操作大规模数据库和知识库的计算机技术; 高性能工作站技术;
分布式功能性计算机技术; 科学计算的超级计算机技术。
委员会对 FGCS 计划提出如下建议:
①第五代计算机概念:具有并行处理(非冯·诺伊曼式)和以知识库为基础机制的推理。为实现这些机制,软硬件接口应是逻辑程序设计语言。
②FGCS 计划目标:开发新一代计算机系统,能进行知识信息处理和克服传统机的技术限制。
③FGCS 计划目的:研制FGCS 原型系统,它有 4 个PE,执行速度在100MLIPS和 1GLIPS 之间。
④FGCS 计划研究与开发时间:十年,分三个阶段进行: 初始阶段(1982~1984 年):发展基础计算机技术; 中间阶段(1985~1988 年):开发中小型子系统;
最后阶段(1989~1992 年):实现一个原型系统。
1992 年 6 月的第一个星期,作为展示第五代计算机研究成果并宣布这项
计划结束的最后一次第五代计算机会议在东京召开,近 2 000 人出席了这次会议。会议公布的结果具有里程碑的意义。
在硬件方面,这项计划的最主要成果是开发了一个包含有 1000 个处理单元(PE)的并行推理机原型系统 PIM,其推理速度能达到 100MLIPS(1LIPS 相当于每秒执行 100 条指令)。
在 PIM 上,开发了许多并行软件系统,有并行操作系统 PIMOS,数据库管理系统 Kappa—p,知识库管理系统 QUIXOTE,约束逻辑程序系统 GDCC,定理证明器 MGTP,以及 20 多个并行应用软件系统,例如,法律推理系统和遗传信息分析系统等。
由于第五代计算机计划的实施,一大批年轻的日本计算机科学工作者在知识处理、智能软件和并行计算等领域得到了培养、锻炼和提高。与 10 年前日本在国际上的影响相比,情况发生了本质的变化。1993 年在法国召开的第十三届国际人工智能大会上,日本作为国际人工智能界崛起的一支新兴力量令人刮目相看。这种现象在 FGCS 计划刚开始时是不可想象的。很多人都认为,FGCS 计划对日本计算机科学起到了支撑性作用。
FGCS 计划现在看起来也有二点不足,一是缺乏实际的应用程序,在第五代计算机系统上开发、演示的大多是小型原型应用系统;二是 FGCS 计划开发的这些硬件/软件离开日本便不能使用。对此,FGCS 又制定了一个二年半的后续计划,以设法在此期间开发一些大型实用的应用程序,并研究将所研制的软件移植到当今的主流计算机上的可能性。同时,日本通产省宣布可免费使用 FGCS 计划所开发的软件,而且在使用、修改、拷贝和扩展方面不作任何限制。
由于尝到了第五代计算机计划的甜头,目前日本政府正在制定一个更加大胆、超前的计划——现实世界计算(RWC)计划。该计划的目标不是造出一台实际的计算机,而是侧重于直觉信息的处理,侧重于探索和建立有关类似
于人类灵活的信息处理和人类智能的理论、方法和技术基石出。
未来的计算机领域,是一场残酷的争夺战。曾一度在计算领域处于霸主地位的美国人,没有想到日本人正在暗暗地与他们较量。半个世纪前,当美国人趾高气扬地目睹日本人在“密苏里”号军舰上签字投降时,曾是何等的骄傲和自豪!然而美国人错了,日本人正在同他们进行另一种战争。直到 80 年代中期,美国人才发现日本人又发动了一场历史上最惹人注目的商业战, 他们简直快把美国的工业搞跨了。日本人靠高科技实力,靠智能计算机的研究,走在时代的前面,那是权力与财富的象征。这使人们想起日本一位经济学家在日本战败前 4 个月时讲过:“穿军服的军队不是唯一的军队。具有科学技术和战斗精神的穿着企业制服的人将是我们的地下军。”历史的实践已经证明了“穿企业制服”的可能战胜“穿咔叽军服”的。热战中的失败者终于在商战中赢得了胜利的花环。这场没有硝烟的战争,是一场经济实力的对抗,武器是商品而不是枪弹,科学技术当了先锋。正如国际上有评论家所述: 当我们仍然按着战争是政治的继续推导思维的时候,经济已成为战争的延长,决定着每个地区,每个国家和每个民族的全部历史命运。国际上商战如同战场,计算机的研究也是如此。
- 中国智能计算机系统构架蓝图
未来的世界是经济竞争的世界,是计算机的世界。没有硝烟的战争左右着未来世界的格局,进而影响到国家和民族的命运。
未来的时代是信息膨胀的时代,是高科技飞速发展的时代。我国的经济起飞,意味着要在未来的几十年里,走完发达国家一百多年或二三百年的传统产业革命路程。用著名科学家钱学森的话来讲:即中国要在下一世纪发展高度知识密集型的农业型产业,同时补上第四次产业革命的课,迎头赶上第五次、准备第六次,第四、五、六次产业革命一气呵成,其任务是非常艰巨的。
80 年代初,美国政府提出了轰动世界的“星球大战计划”,这个计划将促进美国高技术领域的大发展,其成果无疑会影响社会经济发展的各个方面。针对这个计划,日本、西欧也不失时机的提出了本国的高科技发展计划。1984 年,日本拟定了“10 年科技发展政策大纲”,1985 年法国提出“尤里卡计划”,建议西欧各国联合发展高技术,大有同美国一比高低之势。
这些动向表明世界正处在高技术革命的高潮之中。中国科技界的有识之士清醒地看到中国正面临着一次新的挑战,同时也是一次难得的机遇,只有奋起直追,才可缩小与发达国之间的差距 1986 年 3 月 3 日,王淦昌、王大珩、
杨家墀、陈芳允等 4 位院士上书国务院提出跟踪世界先进水平,发展中国高技术的建议。3 月 5 日,邓小平同志作了“此事宜速作决断,不可拖延”的批示。后经 200 多位专家(大多数是院士)的论证,提出了中国的“高科技
研究发展计划纲要”,因为上书和指示的时间都在 1986 年 3 月,故此计划又简称为“863 计划”。
根据当时的国情、国力,863 计划选定了生物、航天、信息、激光、自动化、能源和新材料等领域作为今后中国高技术发展的重点。中国政府决定在 2000 年前投资 100 个亿人民币支持该计划的实施。863 计划的目标是:
积极跟踪世界高技术发展前沿,缩小中国与世界高技术的差距;
培养新一代高水平科技队伍;
将研究成果尽快商品化、产业化,为高技术产业化和传统生产的改造奠定基础;
推动全国,并为 2000 年后中国高技术产业和国民经济发展创造条件。
863 计划的信息技术领域选定了如下三个主题: 智能计算机系统;
光电子器件与微电子/光电子系统集成技术; 信息获取与处理技术。
内容包括微电子技术、光电子技术、计算机技术、计算机软件、通信技术、辐射成像技术、超解像电视技术。主要研究信息的获取、存贮、表示、传输、处理和显示等。
其中,智能计算机系统主题到本世纪末的目标是:研制出中国的智能计算机系统,该系统具有良好的人机环境,具有各种各样的科学知识和经验常识,具有很强的学习、知识处理和知识重组能力,具有重新获取、理解、翻译及合成自然语言(声音和文字)的能力,以及存贮、识别、搜索、处理图形图像的能力,具有模拟人的行为的能力。同时,还将研制一批综合性的智能应用系统及各种高智能的计算机设备。
智能计算机系统主题的研究已经取得了一批高水平的研究成果,例如:
●成功研制出“曙光 1#”计算机和“曙光 1000”高性能、大规模并行计算机;
●成功研制开发了“笔译通”、“快译通”、“手写中文个人数字助理” 等产品,并已上市;
-
EST/4260 兼容性智能工作站系统已通过国家科委鉴定,达到国际上 80 年代中后期水平;
-
400 万手写汉字样本库建立,已通过中国科学院鉴定;
●图表数字识别系统已成功用于中国第四次全国人口普查;
●建立了“国家智能计算机研究开发中心”,研究关键性产品,开发易于推广应用的智能系统集成产品并开展相关的基础性研究;
●设在清华大学的计算机集成制造系统(CIMS)实验工程中心,于 1994 年在美国获得制造工程协会的“大学领先奖”;
●造就了一批较高水平的年青计算机科学家,建立了一批国家级高技术研究开发队伍。
“863 计划”实施 10 年,中国各行各业都发生了深刻的变化,特别是电
信建设有了突飞猛进的发展,邮电通信能力的增长速度从 1988 年开始超过国民经济的发展速度,至今仍继续保持着加速增长的势头。进入“八五”以后, 电信建设速度进一步加快,1991、1992 两年净增局用交换机 683 万门,长途电路 12.18 万条。业务分别增长 40.4%和 49.5%。
随着“八五”砚划中 22 条光缆干线。20 条数字微波干线和 20 个大中型卫星通信地球站的建成。1996 年将初步建成能联全国省会以上城市的大容量数字干线传输网。“九五”期间将继续扩大系统容量和复盖范围,基本建成以光缆为骨干的全国大容量数字干线传输网。
在光缆数字网迅速发展的基础上,又完成了全国分组交换公用数据网第一期扩容工程。该网复盖大陆所有省会城市在内的 267 个城市,拥有 2 万个端口,每个端口的速率可达 64Kb/S,节点机间的中继电路根据业务需要已安
排了 100 多条。目前该网已与 18 个国内信息系统集团用户签约提供数据通信
服务,并已与国际上 37 个分组交换网互联。通达 21 个省市的全国高速数字数据骨干网第一期工程投入运行以后。有 2mb/s 的高速电路 776 条,其它数字电路 2 600)条,为各种信息系统提供不同速率的永久或半永久性的专线数字电路。同时移动通信也迅速发展,70 多万户蜂窝式电话用户实现全国联网,还有无线寻址用户 700 万左右。成为世界上拥有寻呼机最多的国家之一。
十多年来的投资建设,中国公用电信网无论在规模容量上,还是在技术层次上,不仅缩短了与世界先进国家之间的差距,也为信息网络的发展奠定了良好基础。现代信息处理技术与现代通信技术相结合,为计算机广泛应用及信息服务业提供了良好的环境。目前,中国约有信息机构 8000 家,从业人
员约 70 万人,全国信息服务业年营业额达 20 亿人民币。在信息服务业发展中,软件开发与服务业市场已经形成并逐步走上了有管理机制的轨道。由于信息提供业的发展,科技情报信息已与国外科技情报中心联网,可通过终端操作,检索查询相关的科技情报信息,同时还广泛应用到国内经济建设和公众信息服务的各个方面,日益发挥着巨大作用。
863 计划的信息技术领域正在推动中国高技术的发展,并为国民经济的发展作贡献。
- 多媒体计算机
多媒体这一术语在计算机界流传日广,多媒体计算机格外引人注目,就像当年“人工智能“、“软件工程”和现今的“面向对象”、“开放式”一样,多媒体成了很时髦的东西。
媒体这个词在计算机科学中有两方面含义,一方面含义是指信息的载体,如卡片、纸带、‘磁带、磁盘、打印纸、光盘等;另一方面含义是指信息的表现形式,如文字、声音、图形、图像、动画等。多媒体计算机中所说的媒体是指后者,即这种计算机不仅能处理数据、文字,还能处理声音、图形、图像、动画等 c 一般说来,能处理多种媒体信息的计算机技术,称为多媒体技术;具有对多种媒体进行获取、编辑、存贮、检索、传输、展示等能力的计算机称为多媒体计算机。
由于多媒体技术能使计算机的功能扩展到处理声音及图像,因而使用户能在计算机屏幕上看到、听到图、声、文并茂的画面,能对多种信息进行综合的统一编辑与处理,能形象化地、方便地实现人机交互,因而,多媒体技术发展极其迅速,其应用面愈来愈广,专家们预言,90 年代将是多媒体计算机时代。
多媒体技术的主要特点是能统一、综合处理多种形式的信息,包括文本信息(字符、数字数据等信息),图形图像信息(来自摄像、扫描仪输入的图片、图画、照片以及有时间序列的图像,如动画和电视、电影视频等动态图像)、声音信息(叙述、演讲、报告、讲授、音乐,以及自然界的各种声音,如山崩地裂声,枪炮流弹声,飞禽走兽的叫声,火车呼啸声;流水声等)。可见,多媒体技术是计算机技术、声像技术(电视、录像、收录等),以及通信技术相结合的一种综合性技术。
由于多媒体技术的发展,到 80 年代后期已推出了不少多媒体计算机产品,90~94 年多媒体计算机的销售量增加了 40 倍,预计三年内由于多媒体
的兴起可使全球的微机销售量增加上百亿美元。
1986 年,由生产家用电气产品而誉满全球的菲利浦公司和索尼公司推出了紧凑光盘家用交互式多媒体系统 CD—Ⅰ。该系统用光盘存贮多媒体信息。用 68000CPU 与电视机、录像机、电话机及音响设备等连接在一起,具有人机交互能力,可用鼠标移动屏幕上的光标,灵活地控制系统的工作。该系统价格低廉,是一种以家庭娱乐、学习为主的系统。
1989 年,美国 Commodore 公司借助 CD—Ⅰ技术的思想,在 Amiga 500 计算机上推出 CD—I 的 Amiga 系统正式产品,这是较早的多媒体计算机系统。前不久,该公司又推出了一个 Amiga Vision 多媒体著作系统,为用户提供了一个完备的图符著作系统。1991 年,以使用方便、直观、操作良好的图形界面获得用户赞许的 Macintosh 计算机制造公司——苹果公司,在 68030CPU 的 Macintosh 计算机基础上,研制了一个多媒体开发环境 Quick Time。现又在 Quick Time 及微软公司的多媒体 Windows3·1 基础上进行功能扩充,研制了多媒体计算机操作系统 MPCOS,其主要特点是具有管理动态画面和控制声像设备的功能。这个软件平台不仅为多媒体应用程序开发者提供了一个友好、实用的开发环境,也为用户提供了一个直观、简便的操作环境。1991 年IBM 公司和 Intel 公司联合推出了数字影像交互式系统 DVI,设计了一组芯片,其功能包括信息的采样,模拟量到数字量的转换,管理电视、图形、图像、声音、文字、数值等不同格式信息的合成及同步。到 1995 年之后,他们打算将 DVI 系统的这组芯片的功能集成到一块芯片上。
多媒体计算机的硬件除了常规的硬件如主机、软盘、磁盘、显示器、网卡、键盘、鼠标外,还包括音频信息处理硬件,视频信息处理硬件及光盘存贮器和光盘驱动器。其中音频信息处理硬件包括声卡和声音输入/输出设备, 声卡用于把话筒、唱机、电子乐器等输入的声音信息进行模数转换、压缩等处理,也可以把经过计算机处理的数字化的声音信号还原(解压缩)、数模转换后用扬声器播放出来,或用录音设备记录下来。声卡还能支持 MIDI 类型的电子乐器。MIDI 规定了利用数字编码来描述音乐乐谱的规范。利用 MIDI 规范所描述的乐曲由声卡上的大规模集成电路制成的音乐合成器转换成数字化声音信息,再经过数模转换后即可播放出乐曲来。
视频信息处理硬件主要包括视频卡和视频输入/输出设备,视频卡用来支持视频信号(如电视图像类的活动图像信号)的输入和输出。视频信号的信息量极大,例如一幅 512×512 的 4096 色的彩色图像就需要 384KB 的存贮量, 若以每秒 25 帧的速度进行播放,则一秒钟的活动图像就需要近 10MB 的数据, 这样大的数据量,不但存贮难以承受,而且传输和处理起来也极为不便。视频卡的功能是逐帧捕捉图像并把图像信息数字化;对数字化;的图像数据进行压缩与还原;将捕捉的图像或还原生成的图像与计算机生成的文字及图形叠加在一起,送至显示器进行显示;将输出图像转换成广播级的(PAL 或 NTSC 制式)模拟视频信号供电视机播放或记录在录像带上。
多媒体计算机通常用 CD—ROM 光盘片存贮图形、图像、声音等信息,CD 光盘片与普通激光唱卡外表上差不多,但内容除了音乐之外,还有文字、声音、图形、图像、动画等。每片光盘的存贮容量可达 650MB,若只存放汉字, 则可存贮 300 册百万字的图书。光盘只能在光盘驱动器上读出。用户可以像处理软盘或硬盘一样处理光盘上的数据。由于受到数据读出速率的限制(CD
—ROM 驱动器的数据读出速率约为 150KB/S,平均存取时间约为 1 秒),目前
光盘上存放的视频信息还难以达到普通电视、电影那样的质量,但估计会很快解决这个问题。
多媒体计算机的软件包括音频与视频信息压缩与还原子系统,多媒体设备输入/输出控制子系统,多媒体操作系统,多媒体数据库、多媒体编辑工具和创作工具以及多媒
体应用软件等。
音频与视频信息的压缩与还原技术,特别是图像压缩与还原技术是多媒体计算机中的关键技术之一,要设计一个压缩/还原速度快、图像重现精度高、信息压缩比适度的压缩/还原算法是很不容易的。由于音频与视频信息处理速度要求很高,在有些多媒体计算机中,音频与视频信息压缩与还原子系统是用专用集成电路为核心的硬件来实现的。多媒体设备输入/输出控制子系统用于控制。管理和驱动多媒体设备,并提供相应的软件接口,供高层软件调用。多媒体操作系统是一个能迅速管理、控制、调度多媒体信息的,具有实时多任务处理能力的软件平台。多媒体数据库是集图、文、声、像于一体、对不同格式的数据进行统一管理、快速检索和游览的数据库系统,在用户界面上通常采用面向对象和超文本技术。
超文本技术与普通文本技术的差别在于,普通文本是按线性方式存贮的,而超文本则是以非线性方式存贮的,其文本各部分以节点形式出现,节点间用链连接,构成信息的管理网络。节点中的内容可以是文字、图形、图像、声音,实现厂文字、图形、图像、声音等多媒体信息的统一处理。这样设计的用户界面可提供给创作者自定义及生成链路的功能,而作品的读者叶以按需使用链路,对作品进行快速检索及导航式浏览。
多媒体编辑工具包括字处理软件、绘图软件、彩色图像处理软件、动画制作软件、声音编辑软件以及视频编辑软件等、声音编辑软件和视频编辑软件就像一个小型音像描述,可以展现鸟语花香;可以用“虚拟现实”的方法, 十分逼真地模拟现实世界,使我们虽身在“机”旁,却好像身临其境在游览世界风光。
预计 90 年代多媒体技术对提高人们的工作效率和生活质量将起重要作用,对生产、生活和社会各方面将产生巨大深刻的影响。
- 灵活、实用的客户/服务器结构
市场需求一直是推动信息产业发展的主要动力。例如美国的金融业,首先大规模应用 Sybase 公司的客户机/服务器数据库体系的就是华尔街的投资公司。客户机/服务器给这家公司的衍生性金融商品交易带来巨大的效益,而且由于衍生性金融商品变化多端,发展迅速,导致应用软件生存周期大大缩短,对软件产生以极大的促进。因此,构建灵活实用的客户/服务器结构势在必行。
60 年代、70 年代,计算机系统一般都是采用大中小型主机带多终端的主从式结构。这种集中式结构的突出问题是一旦主机故障,整个系统则崩溃。于是,分布并行处理便成了 70 年代的重要研究课题。自 IBM 公司于 80 年代推出第一台微机以来,目前微机的处理能力已能与过去的小型机相媲美。微机的广泛应用自然而然地将人们的注意力从大中小型机转移到运行 DOS、Windows、Unix、OS/2 等的微机和工作站上。计算机网络技术的发展,特别
是微机局域网技术的发展和广泛应用,使得微机的应用如鱼得水。CPU 技术的发展,超大容量存贮设备的应用、微机操作系统功能和性能的改进、高速局域网的出现、丰富应用软件的开发应用,以及多媒体、开放式、虚拟现实技术和面向对象方法的研究和发展,为微机的应用开辟了更为广阔的前景。微机和大中型机并存已成为事实,而且随着微电子技术和网络技术的飞跃发展,促使了计算机应用迅速向小型化方向发展,于是水到渠成地出现了客户/ 服务器(Client/Server)体系结构。
究竟什么是客户/服务器体系结构呢?美国计算机专家 P·Smith 的定义是:客户机是一种单用户工作站,它提供与应用有关的表示、计算、连网、访问数据库和各类用户接口程序,服务器通常是一种存贮器共享型的多用户处理机,它提供应用所需的计算、连网、数据库管理和各类接口服务。客户/ 服务器结构是由客户机和服务器构成的一种网络计算环境,它把应用程序所要完成的任务分派到客户机和服务器上。通常客户/服务器结构是由异型机构成,其间的通信是由标准程序接口和远程调用实现的。
可见,客户/服务器结构是由客户机、服务器和连接支持构成。客户机可以是任何一种微机,它需要具有一定量的内存和连网功能。客户机运行的操作系统可以是 DOS、Windows、OS/2 或 Unix 等。客户机主要运行供用户开发应用程序的一些实用工具和用户程序,因而它具有访问服务器的各种软件接口和灵活、方便、高效、友好的用户界面。用户界面可以是非图形界面、图形界面和面向对象界面。服务器可以是高档微机、 Macintosh 机、HP RISC 机、Sun 工作站,可以是支持对称多处理器的超级服务器,各类数据库服务器,通信服务器,也可是 DEC、IBM 的大、中、小型机。所使用的操作系统可以是 Unix、OS/2、 MVS 和 VMS 等,以及局域网操作系统 Netware、 Windows NT、Server 等,服务器的主要任务是存贮共享数据、提供数据库管理、通信机制以及客户机所需要的各类服务功能。连接支持是连接客户机和服务器的纽带,由它完成数据通信功能。典型的连接支持由传输堆栈、网络和网络操作系统、分布式管理系统和通信服务四层组成。
客户/服务器结构的概念并不复杂,它主要是将提交给计算机系统处理的任务分解成多个子任务,由多台计算机协同来完成。客户机可以通过连接支持中的网络提出所需的服务请求,由系统中最合适的服务器来响应该请求, 并将处理结果返回给提出请求的客户机,达到服务功能与系统规模的优化, 提高整个系统的可用性、可靠性、可维护性和效率。客户/服务器从“服务” 的概念出发,提出了对服务功能的明确划分。一个服务器可同时为多个客户提供服务,服务器具有对多个客户共享资源的协调能力。客户和服务器之间存在着多对一的关系,即多个客户可以(同时)请求一个服务器为其服务。客户/服务器软件向客户提供服务器位置透明性服务。此外,客户/服务器一般是一种松耦合系统,它们之间是通过报文交换来实现相互作用的。“报文” 是服务请求与应答的传送单元。服务器能自动地根据客户服务请求报文识别所要求服务的类型,并合理调度服务程序所需要使用的资源。
现在越来越多的人认为这种新的计算机体系结构是 90 年代乃至 21 世纪的计算机技术。于是,当前的计算机应用正积极地从两个方面向客户/服务器过渡。一方面是从前使用单机(微机)的单位,用网络把它们连接起来,构成客户/服务器结构;另一方面就是把传统的主机系统移植到客户/服务器。国外很多文献将这方面的情况用“ Downsiz- ing ”、“ Upsizing ”和
“Rightsizing”来描述。所谓“Down-sizing”是指将应用程序从主从式大中型计算机系统转移到微型机环境。通过将大中型机运行的应用程序变成一个或多个网络服务器运行的多个应用程序模块,用微机图形用户界面去取代简单的终端屏幕,使得系统规模减小。所谓“Upsizing”是指将多台独立的微机互连成网,共享网络、硬件、软件和数据资源,从而扩大和增强微机的使用范围和能力。所谓“Rightsizing”是指将应用程序转移到最合适的服务器平台,客户可以通过网络请求服务,由系统中最适宜完成此项任务的服务器来完成客户的服务请求,达到服务功能、处理能力与系统规模和性能的优化。
客户/服务器结构中的服务器主要有文件服务器、数据库服务器、事务处理服务器、应用服务器、通信服务器和面向对象服务器等。文件服务器仍然是服务器中最基本的一种。文件服务器效仿大中型机对文件共享的管理机制,实现用户帐户、用户合法身份验证、用户对文件存取权限的管理及提供对文件操作的支持。数据库服务器存放共享数据,执行数据库管理,并响应客户机对数据库管理系统的各类请求。事务处理服务器将一项复杂的数据处理过程当作一个“事务”来处理。有时,将事务处理服务器的功能并入数据库服务器。应用服务器主要是针对半结构化的信息、图形、图像、电子邮件、电子广告牌等应用要求出现的一类新型服务器。通信服务器主要解决网间的连接和通信。对象服务器则把应用程序视为一组由“对象+消息”结构组成的集合,并用面向对象方法来处理。
数据库系统充当了客户/服务器潮流的开路先锋。Ora-cle、Sybase、Informix 和 Ingres 等著名数据库公司对客户/服务器结构的发展看得准、起步早、投入大、成绩显赫。Sybase 是一个居关系数据库市场第二位的数据库厂商(居第一位的是 Oracle),它将客户/服务器这一思想和关系数据库技术相结合,发展了现代形式的分布式系统技术。Sybase 在 80 年代后期以其独创的以 Open Client、OpenServer 为基础的客户/服务器计算系统奠定了其与众不同的开放式、分布式数据库技术的基础,实质性地推动了一般分布式系统技术的发展。Sybase 所推动的并得到众多厂家响应的新型分布式系统模式是“计算机网络+中间件+分布式应用程序”。
其中,“中间件是一个软件层,它将网络拓扑,通信协议以及其它方面的细节掩藏起来,并为各种资源服务器(Server)软件和客户(Client)端应用程序提供一致的高级通信调用和接口。多个分布在不同机器节点上的资源服务器在中间件的协调下统一地向分散的多个客户软件提供位置透明方式的逻辑服务,整个网络在中间件的组织下形成一个统一的计算机系统。
在这种分布式系统结构中,每个节点计算机上,运行相应的服务器
(Server)软件来管理本机资源,并通过中间件以客户/服务器方式向外提供服务,中间件将网络中各节点上的服务器软件所提供的资源服务和功能服务粘结起来形成一个位置透明的逻辑整体向全网开放。在 Sybase 数据库系统中,主要以 Open Server 为基础粘结各个节点计算机上的数据服务资源和功能服务程序,并通过 Open Client 向各节点计算机上的客户应用程序提供数据服务和功能服务接口。
在这种分布式系统结构中,中间件决定了一个分布式应用系统的结构, 取代了操作系统的中心角色地位,而网络中各个节点计算机上的操作系统只是起一个承载网络通信协议、中间件和个别资源服务软件、个别客户软件的
容器作用。其中通信协议和中间件多以驱动程序的方式存在,资源服务、功能服务和客户软件多以应用程序的形式存在。
Sybase 产品的核心是其数据库管理系统 SQL Server,Sybase 产品和技术与传统不同之处的关键是其 OpenClient/Open Server。
应用系统的软件分为客户和服务器两部分。客户部分用 Power Builder 或其它开发工具开发,负责处理与用户(操作人员)的一切输入输出,应用逻辑的处理,以及向服务器部分提交数据处理请求等任务。
服务器部分主要由 Sybase SQL Server 构成,它接受客户软件的请求, 负责数据的存贮、查询、修改、维护、完整性及一致性检查等一切数据处理操作,并向客户部分发回处理结果。
Open Client 是一个软件层,它为客户应用软件提供了统一的应用编程运行接口;Open Server 也是一个软件层,它为 SQL Server 等服务软件提供了统一的编程和运行接口。所有客户软件和 SQL Servev 等应用服务软件之间的通信都通过 Open Client 和 Open Server 进行,客户软件和服务器软件不用关心它们之间的通信是以什么方式实现这种先进的结构使得用户程序不仅可以在传统的单机环境下运行,还可以在由联网的多个机器构成的网络分布环境下运行。在网络系统平台环境下,Open Client 和 OpenServer 运行在网络协议之上,通过网络为客户软件和 SQLServer 等应用服务软件传递和交换数据。网络可以是简单的局域网,也可以是包含多种协议和远程网络的复杂网络。在单机系统平台环境下,Open Client 和 Open Server 通过单机系统的内存进行传递和交换数据。
用户可以分别在试用、使用初期,以及随着业务量的增大逐步对系统配置和结构进行改进,而软件却不用修改。这种极具先进性的软件结构为用户选择硬件和确定系统环境提供了最大的弹性。此外,也为像 Power Builder 这样独立的第三方厂家的开发工具提供了用武之地和生成的土壤,这是Sybase 技术最有益于用户的成果之一。
在服务器一边, Open Server 软件层提供了更大的系统结构想象空间。在 Open Server 的基础上不仅可以实现 SQL Server,更多的应用管理和服务功能也可以在 OpenServer 的基础上实现。事实上,Sybase 的许多系统管理和维护功能都是基于这样的客户服务器结构实现的。在 OpenServer 基础上还可以实现透明的数据库网关和其它分布式互连产品,将应用客户软件的数据访问导向其它关系数据库管理系统、其它非关系数据库管理系统、其它主机等,以及几乎所有的数据源,导向一个几乎没有限制的世界。
自 90 年代以来,客户/服务器作为一种新型的体系结构模式得到了飞速的发展,美国是客户/服务器的率先者,Oracle、Microsoft、Sybase、Novell、Informix、Sun、In-gres、Compag 等公司对此投入大,成绩卓著。世界头号计算机制造商 IBM 公司把客户/服务器列为该公司的重要议事日程,并在世界范围内建立了 34 个“客户/服务器用户中心”,也叫“开放系统中心”。每个中心都有 IBM 一些经验丰富的技术人员,专门为用户提供技术咨询和技术支持。每个中心都配备了来自不同厂家的设备,作为 IBM 的客户/服务器结构的演示环境。与此同时,IBM 计划推出 Vi-sualAge—一个面向对象的客户
/服务器应用开发工具,它可使用户建立通过多厂商网络访问数据的应用,而且 IBM 宣布的 Highpoint 计划可以帮助用户把应用从主机系统移植到客户/ 服务器环境。总之,IBM 公司决心在客户/服务器方面也要独占鳌头。美国第
二大计算机企业 DEC 公司在客户/服务器诱人的市场形势下也不甘示弱,宣布将把精力放在客户/服务器领域并将推出 150 个产品和服务项目。DEC 公司将推出更高性能的 VAX 和 Alpha 服务器以及能与多个厂商环境紧密联系的Phathworks 局域网操作系统,同时宣布了新的集成服务,以帮助用户从大型机转移到包括多厂商的局域网互连系统。特别引入关注的是 Acer 公司推出的全球第一台 Intel Pentium 90 MHZ 服务器 Ac-er Altos 7000,该服务器的 CPU 可以从 486DX33 一路轻松地升级到双 Pentium,并具有 32/64 位自动切换的总线技术以配合 CPU 从 486 到 Pentium 的升级。该产品在同档次服务器中具有较高的性能价格比。
美国的其它计算机厂商也都看好客户/服务器应用前景,纷纷杀向客户/ 服务器市场,新产品、新计划竞相推出:DG 服务器家族新星辈出; HP 以低档服务器与 Compag 抗衡;Apple 推出 Powerpc 服务器;ASK 公司开放 Ingres数据库,其目的在于让用户将非 lngres 产品加入其客户/服务器环境中; Compag 正积极进军数据库服务器市场⋯⋯客户/服务器的发展和应用导致计算机产业市场繁荣发达,带来可观的经济效益,无怪乎差不多众口一辞地称90 年代是客户/服务器的年代。
客户/服务器在欧洲的推厂也很快,据 PAC 公司预测 1995~2000 年,客户/服务器可能要达到 300 亿美元的市场收入。日本在客户/服务器开发应用方面会很快向美国靠近,因为日本国民一向善于遵循引进、改造、提高、超过、返销的策略。
1993 年,全球服务器销售量约为 310 万台,1994 年达 400 多万台,年增长率为 35.5%,远远高于微机 9.3%的增长率,预计 1993~1997 年服务器平均年增长率为 29%。由于服务器相对微机来说是一项高技术的产品,因而占领市场的服务器产品均为世界名牌厂商生产。目前在发达国家的大型企业中大约有 50~60%的企业采用某种形式的客户/服务器结构模式。
在客户/服务器应用日趋广泛的大潮中,我国的一些企 业和金融部门已经或正在采用客户/服务器这种体系结构。据 Sybase 公司宣布,仅在 1993 年一年中在中国卖出 100 套客户/服务器。Sybase 公司进入中国仅仅三年多, 其产品已广泛用于金融、电信、政府机关、商业、交通、制造等行业。目前在我国服务器市场占主要份额的外国厂商及主要产品有 Compag 的Prosighia,AST 的PASE,HP 的 LE、LM,Acer 的 Acer Altos,DEC 的 DEC/MTE、 XL, DE Ⅱ的 DEⅡ/XE、 SP 等。在我国,客户/服务器结构模式很有发展前途,尤其是在金融交易系统、办公自动化、厂矿企业的管理信息系统、宾馆饭店的管理系统等均是首选的应用目标。
目前,我国已基本具备了开发客户/服务器结构的条件和技术水平。据报导,1994 年,亿达科技公司推出了我国首台双 100MHz“奔腾”智能容错网络服务器,它借鉴了源于高性能大中型计算机系统的先进技术,独创性地采用 SM 多处理器高速缓冲通道体系结构,有效地解决了微机系统 I/O 瓶颈问题,使系统处理能力及 I/O 处理能力均达到优化状态。其磁盘子系统采用了廉价冗余磁盘陈列技术(RAID),创造性地使用了多个 32 位微处理器,在FASTSCSIⅡ接口中实现了当前国际商业化的最高容错能力——PAID,0,1,4, 5 任选方式;在网络接口子系统中采用了具有国际 90 年代先进水平的 32 位网络处理器,使网络 I/O 处理能力大大加强;新颖的在线 UPS 有效地保证了网络系统的安全性和可靠性,从而极大地提高了 SM 智能容错网络服务器在文
件操作、数据处理和数值计算等方面的综合处理能力。1995 年,该公司再次推出国内第一台可由目前世界上最快的双 90/100MHz“奔腾”(Pentium586) 微处理器构成的超级服务器 SM Power Twin,使 SM 智能容错网络服务器的性能更上了一层楼。该服务器可支持所有支持 Intel 多处理器设计规范的操作系统以及市场上广泛流行的单处理器操作系统。
当然,客户/服务器结构并不能代替主机系统,但今后的新型信息系统的需求将继续增长,这将给客户/服务器造就一个良好的环境,富有生命力的客户/服务器结构必将迎来一个新的发展时期。
- 面向对象方法
长期以来,人们一直在寻求解决这样一种不合理的现象,即我们认识一个问题的“认知空间”与计算机处理问题的“方法空间”不一致。面向对象方法(简称 OO 方法)学的出发点和基本目标就是使我们认识一个问题的过程和方法与我们用于分析、设计和实现一个系统来解决此问题的过程和方法尽可能地一致,即使描述问题的“认知空间”和解决问题的“方法空间”在结构上尽可能一致。因此,它涉及到分析方法、设计方法、实现方法、思维方法和程序设计方法。
人们对一个问题或事物的认识是一个渐进过程,是在继承了以往有关知识的基础上,经过多次反复而逐步深化的过程。在这种认识过程中,既包括了从一般到特殊的演绎,又包括了从特殊到一般的归纳,例如自上而下方法就是一种演绎方法,而自下而上方法就是一种归纳方法。OO 方法既提供了从一般到特殊的演绎手段(如继承等),也提供了从特殊到一般的归纳形式(如类等),从而说明它较自然地模拟了人类认识世界的方式,因而是一个很好的认知方法和思维方法。
OO 方法学认为,任何事物都是对象(Object),每个对象都有自己的运动规律和内部状态,每个对象都属于某个对象类(Class),复杂对象可由较简单的对象构成。不同对象的组合及相互作用便构成我们要研究和分析的客观世界。
对象由一组数据和施加在这组数据上的一组操作构成。对象的每个操作称为“方法”(method)。对象的功能可以通过为其定义的一组方法来描述。对象的结构特征是由它的属性表现的。对象间的相互作用是通过“消息传递” 实现的。一个对象通过向另一个对象发送消息去激活它的某个方法,对象的每个方法都对应且仅对应一条消息。方法的具体实现细节则封装在对象类的定义中,对外界是隐藏的。
一组具有相同结构特征和行为特征的对象构成一个类,类中的每个对象都是其实例。一个类的上层可以有父类或超类,下层可以有子类,形成一种类层次结构。在这种层次结构中,一个类(直接)继承其超类的全部描述, 这种继承具有传递性,所以一个类实际继承了类层次结构中位于其上面的所有类的全部描述。因此,属于某个类的对象,除了具有该类所描述的特性外, 还具有层次结构中该类上面所有类描述的全部特性。若一个类可直接继承多个类的特性,则称为多重继承。若一个类至多只能直接继承一个类的特性, 则这种继承方式称为单重继承或简单继承。在单重继承情况下,类层次结构为树型结构,多重继承时,类层次结构为网状结构。
继承性是一种自动地共享类、子类和对象中的方法和数据的机制,每个对象都是某个类的实例,且一个系统中的类对象是各自封闭的,若没有继承性机制,则类对象中的数据和方法就可能出现大量重复。
封装性是一个源自抽象数据类型(ADT)的概念。封装性实际上是一种信息隐藏技术,用户只能见到封装界面上的信息,而对象的内部细节对用户是隐藏的。封装的目的在于将对象的使用者与对象的设计者分开,使用者不必知道对象内部行为实现的细节,只须用设计者提供的消息来访问该对象。封装性本身即模块性,把模块的定义和模块的实现分开,就使得用 OO 方法所开发的软件的维护性、修改性、护充性大为改善,这也是现代软件技术追求的目标之一。
多态性是一个与类相关的概念,同一类的所有对象在收到同一条消息时,将采取同样的动作;不同类的对象在收到同一条消息时,可能采取不同的动作。不同对象对同一条消息采取不同动作的这种情况就称为多态性。一般而言,多态性是指事物以多种形态存在,在程序设计语言中,则指数据具有多种类型,或一个名字可具有多种语义。多态性既与动态类型有关又与静态类型有关。
把程序的各种成分有机组织在一起的过程称为联编。联编若在程序的第一次运行前完成,则称为静态联编或早期联编。发生在程序运行时的联编称为动态联编或滞后联编。静态联编是在编译时刻完成的,运行效率高,但修改、维护的工作量大。动态联编与多态性和继承性密切相关,而且是在运行时刻完成的,运行效率稍低,但它所带来的好处(如增、删自如)符合现代软件对可重用、可修改、可扩充等要求。随着 CPU 运行速度的日益提高,运行效率将不会成为主要矛盾。
面向对象方法可用一个公式表示为:
面向对象方法=对象+类+继承性+消息传递+动态联编