计算机专业英语教程(第5版)翻译整理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.1 光存储介质:高密度存储器
2.1.1 光盘
光盘技术最终可能使磁盘和磁带存储淘汰。

用这种技术,磁存储器所用的读/写头被两束激光代替。

一束激光通过在光盘上刻制微小的凹点,对记录表面进行写;而另一束激光用来从光敏感的记录表面读取数据。

由于光束容易被偏转到光盘上所需要的位置,所以不需要存取臂。

对用户而言,光盘正成为最有吸引力的选择。

它们(光盘)对环境变化不太敏感,并且它们以每兆字节比磁盘低得多的存储器价格提供更多的直接存取存储器。

光盘技术仍在出现,并且还需要稳定;然而,目前有三种主要类型的光盘。

它们是CD-ROM、WORM盘和磁光盘。

CD-ROM
1980年引入的,非常成功的CD,或紧密盘是设计来提高音乐的录音重放质量的光盘。

为了制作一张CD,把音乐的模拟声音转换成等价的数字声音,并且存储在一张4.72英寸的光盘上。

在每张光盘上可以用数字格式(用20亿数字位)记录74分钟的音乐。

因为它的巨大存储容量,计算机工业的企业家们立刻认识到光盘技术的潜力。

事实上,任何可以被数字化的东西都能存储在光盘上:数据、正文、声音、静止图象、音乐、图形和视频。

CD-ROM(读作C—D—ROM)是音频CD技术的副产品。

CD-ROM代表紧密盘—只读存储器。

该名字隐含了它的应用。

只读光盘与(能长期播放的) 唱片一样,在工厂里“压制”并带着预先录好的内容(如莎士比亚全集,或电影“飘”的前30分钟部分),分发出去。

一旦光盘插入光盘驱动器,正文、视频图像等等就能读入主存进行处理或显示;然而,在只读光盘上的数据是固定的—它们不能被改变。

当然,这是与磁盘的读/写能力不同的。

大量的、低成本直接存取存储器(是光盘使之成为可能)已经打开了通向许多新应用的大门。

WORM盘(即,CD—R)
写一次,读多次或WORM光盘被那些面向最终用户的公司用来存储它们自己的专用信息。

一旦数据已写到该介质,它们只能读,不能再更新或改变。

WORM盘有可能替代磁带作为档案存储器。

磁光盘
磁光盘有希望使得激光盘成为商业上可行的读/写存储技术。

5*1/4英寸的磁光盘可以存储高达1000Mb。

目前磁光盘太贵且根本未达到用户对磁介质所期望的那种可靠性。

此外,存取时间相对而言比较慢,大约与低档温彻斯特盘相同。

随着光盘技术成熟到可靠,性能价格合算,可读/可写,将来它最终会象现在磁盘、磁带那样统治二级存储器。

2.1.2 数字视盘
DVD是新一代光盘存储技术。

用数字视盘技术能把视频、音频和计算机数据都编码到一张紧密盘(CD)上。

一张数字视盘能比传统的CD存储更多的数据。

一张标准的单层、单面数字视盘能存储4.7GB数据;一张两层标准盘把单层、单面的盘增加到8.5GB。

数字视盘可以是双面的,最大存储为17GB/张。

需要一台数字视盘播放器来读数字视盘。

这种播放器已配备成能读较老的光存储技术。

数字视盘技术的提倡者企图用单一的数字视盘数字格式来代替当前的各种数字存储格式(诸如激光盘,CD-ROM,音频CD),所以也称为数字通用盘。

DVD论坛因建立下一代数字多媒体的统一规范而获得最高信息技术工业奖DVD论坛今天宣布,因该论坛成功制定了DVD-ROM规范而获得1997年PC杂志的(制定标准的) 卓越技术奖。

“新的标准特别重要,因为它们承诺把更高级的技术革新和市场兼容性带给今天的技术用户,”PC杂志主编Michael J. Miller说,“DVD-ROM是被选出的激发兴趣的技术,因为它是一种熟悉的格式,它把大量的新计算、新教育、新游戏和新娱乐的可能性带给用户。


在对DVD-ROM技术的颁奖词中, PC杂志称,DVD将会“代替CD-ROM作为PC内容(即各种软件和资料) 传播的主要手段。

”参加规范开发的三个公司的代表(日立,松下,东芝)代表DVD论坛在11月7日,Las Vegas COMDEX '97 举行的庆祝典礼上接受该项奖。

“基于DVD论坛定义的规范的产品现在正在大量运往世界各地的计算机和电子产品市场,并且卓越技术奖增加了市场对成功制定标准的认可,”东芝公司DVD产品部总经理和DVD论坛创办成员Koji Hase说,“我们非常高兴地看到DVD论坛的工作被公认为个人计算机工业中重要的技术成就之一,特别是在1998年因更大的,全球的会员,论坛扩大了它的工作范围。


“DVD论坛的成员把DVD-ROM规范开发作为最好的技术方法和对市场上客户的最好方法”松下有限公司的DVD商业开发办公室主任Sakon Nagasaki说,“该格式的接受说明了制定标准的努力如何提高整个电子工业的目标。


除了论坛在开发DVD-ROM和DVD-Video标准的作用外,论坛也提出了可记录DVD 的格式,称为DVD-R和可重写的DVD,称为DVD-RAM,并提交国际标准组织。

定义DVD-Audio规范的工作也正在继续着。

“DVD论坛的任务是,在汇合计算机工业和消费电子产品工业中,通过与最广泛代表性的制造商与技术最终用户小组一起工作,确定从CD技术向DVD技术的平滑过渡的途径。

”日立有限公司执行官之一和DVD论坛DVD-RAM工作组主席Yoshita Tsunoda博士说,“不同工作组已完成三个不同的DVD技术标准的定义,并且我们已开始开发下一代规范的工作,这些规范将很好地提供可兼容产品到下一世纪。


PC杂志的卓越技术奖的获得者是由编辑、捐助者和PC实验室全体成员组成的小组在几个月的评价和讨论后提名。

PC杂志,卓越技术奖的主办者,是由Ziff-Davis公司出版、有1.175百万冊发行量的杂志。

PC杂志一年印刷出版22次,每季度出CD,并且连续地在环球网上。

3.1 C++和面向对象的程序设计
一些面向对象的程序设计概念在语言间渗透。

例如微软Quick Pascal是允许使用对象的第一批语言中的一个。

C++有什么使得它是一种适合于开发面向对象程序的语言?如同先前所提到的,答案是类(class)数据类型。

给该语言建立对象之能力的是建立在C结构类型之上的C++类(class)类型。

还有,C++把另外几个特性引入面向对象的程序设计,这些特性并不包含在简单地利用对象的其他一些语言中。

C++的优点包括强类型、运算符重载和较少地强调预处理。

的确你能使用其他一些产品和采用其他一些语言来进行面向对象的程序设计,但是采用C++的众多好处是显著的。

这是为面向对象的程序设计而设计的语言,并非(现有语言的)式样翻新。

面向对象的程序设计是一种程序设计技术,使得你能把一些概念看作各种各样的对象。

通过使用对象,你能表示要被执行的任务、它们之间的相互作用和必须观察的某些给定的条件。

一种数据结构经常形成某个对象的基础;因此,在C或C++中,结构类型能形成某种基本对象。

与对象的通信,如前提到的,能通过使用消息来完成。

消息的使用类似于在面向过程的程序中对函数的调用。

当某对象收到一个消息时,包含在该对象内的一些方法作出响应。

方法类似于面向过程程序设计的函数。

然而,方法是对象的一部分。

C++的类是对C和C++结构类型的扩充,并且形成了面向对象程序设计所需要的抽象数据类型。

类能包含紧密相关的一些条目,它们共享一些属性。

更正式地说,对象只不过是类的实例。

最终,应该出现包含很多对象类型的类库,你能使用这些对象类型的实例去拼合程序代码。

在你更详细地考察这些术语之前,一个好的主意是熟悉与C++和面向对象程序设计相关的另外几个概念,如同下面几节所述的。

封装
封装指的是每个对象把它的成员数据和成员函数(方法)组合成单个结构的方式。

图3-1举例说明了你如何能组合数据域和方法以建立对象。

数据域方法
图3-1 为建立对象而组合的数据域和方法
典型地,一个对象的描述是一个C++类的一部分,且包括对该对象内部结构的描述、该对象如何与其他对象相关,以及把该对象的功能细节和该类的外部相隔离的某种形式的保护。

C++类结构做到了所有这些。

在一个C++类中,你使用私有的、公共的和/或受保护的描述符来控制对象的功能细节。

在面向对象的程序设计中,公共(public)部分一般用于接口信息(方法),使得该类可在各应用中重用。

如果数据或方法被包含在公共部分,它们在该类外部也可用。

类的私有部分把数据或方法的可用性局限于该类本身。

包含数据或方法的受保护部分被局限于该类和任何派生子类。

类层次结构
C++类实际上用作创建对象的模板或模式。

从类描述形成的对象都是该类的实例。

开发类层次结构是可能的,其中有一个主类和几个子类。

在C++中,做这事的基础是派生类。

父类表示更一般化的任务,而派生子类执行一些特定的任务。

例如,早先讨论的林肯类也许包含整个林肯系列公共的数据和方法,诸如引擎、检测仪表、电池、制动能力和操纵。

从父类派生的子类,诸如Tour Car、Mark Ⅷ和Continental可能包含该类专用的一些款项。

例如,1995 Continental是该系列中唯一具有主动悬架系统的汽车。

继承
面向对象程序设计中的继承使得一个类能继承某对象类的一些性质。

父类用作派生类的模式,且能以几种方式被改变(在下一章中你将了解成员函数能被重载、新的成员函数能被添加,并且成员存取特权能被改变)。

如果某个对象从单个父类继承其属性,称为单继承。

如果某个对象从多个父类继承属性,便称为多继承。

继承是一个重要概念,因为它使得无须对代码做大的改变就能重用类定义。

继承鼓励重用代码,因为子类是对父类的扩充。

多态性
与类层次结构相关的另一个重要的面向对象概念是公共消息能被发送到诸父类对象和所有派生子类对象。

按正式的术语,这称为多态性。

多态性使每个子类对象能以一种对其定义来说适当的方式对消息格式作出响应。

试设想收集数据的一个类层次结构。

父类可能负责收集某个个体的姓名、社会安全号、职业和雇佣年数,那末你能使用子类来决定根据职业将添加什么附加信息。

一种情况,一个管理职位会包括年薪,而另一种情况,销售员职位会包括小时工资和回扣信息。

因此,父类收集一切子类公共的通用信息,而子类收集与特定工作描述相关的附加信息。

多态性使得公共的数据收集消息能被发送到每个类。

父类和子类两者都以对该消息是恰当的方式作出响应。

多态性促进现有代码的可扩充性。

虚函数
多态性赋予对象以当对象的精确类型还未知时响应来自例行程序之消息的能力。

在C++中这能力是迟绑定的结果。

使用迟绑定,地址在运行时刻动态地确定,而不是如同传统的编译型语言在编译时刻静态地确定。

这静态的(固定的)方法往往称为早绑定。

函数名被替换为存储地址。

你使用虚函数来完成迟绑定。

在随后的派生类将通过重定义函数之实现而重载该函数时,在父类中定义虚函数。

当你使用虚函数时,消息不是直接传给对象,而是作为指向对象的指针传送。

虚函数利用了地址信息表,该表在运行时刻使用构造符而被初始化。

一个构造符每当创建它的类的一个对象时被调用。

这里构造符的工作是把虚函数与地址信息表链接,在编译运转期间虚函数的地址是未知的;相反,给出的是(在运行时刻确定的)地址表中将包含该函数(入口)地址的位置。

5.5 网络协议
5.5.1 协议分层
为了减少网络设计的复杂性, 大多数网络被组织成一系列层,每层建立在它下面一层的上面。

在所有网络中,每一层的目的是向更高层提供一些服务,而对它们掩盖如何实际实现
所提供服务的细节。

一台机器上的第n层与另一台机器上的第n层进行会话。

在这一会话中所使用的规则和约定一起通称为第n层协议。

基本上,协议是通信各方之间有关通信如何进行的一致约定。

ISO/OSI模型有七层。

在不同机器上各对应层组成的实体称作对等层。

换句话说,对等者使用该协议通信。

应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。

实际上,没有数据直接从一台机器的第n层传输到另一台机器的第n层。

而是,每一层把数据和控制信息传递给紧接在它下面的那一层,直到抵达最低层。

在每对相邻的层之间有一个接口。

该接口定义了下一层向上一层提供哪些原语操作和服务。

当网络设计者决定一个网络包括多少层和每一层将做什么时,最重要的考虑之一是在各层之间定义清晰的接口。

这样做要求每一层执行一组专用的、好理解的功能。

层和协议的集合称作网络体系结构。

一个体系结构的规格说明必须包含足够的信息,使得实现者能为每一层写程序或制造硬件,以致它将正确地执行适当的协议。

由某系统所使用的协议表,每层一个协议,称为协议栈。

一个比喻可以帮助解释多层通信的思想。

设想两个哲学家(第3层中的对等进程)。

一个讲乌尔都语和英语,另一个讲法语和中文。

因为他们没有共同语言,他们每人雇用一个翻译(第2层中的对等进程),每个翻译又联系一个秘书(第1层中的对等进程)。

哲学家1希望对他的同人传达对兔子的喜爱。

为此,他把消息(英文形式)通过第2/3层的接口传递给他的翻译,说“我喜欢兔子”,如图5-3所示。

两个翻译已同意用中立语言,荷兰语,所以消息被转变成荷兰语“我喜欢兔子”。

语言的选择是第2层协议,并由第2层对等进程决定。

然后该翻译把消息交给秘书,秘书例如用传真(第1层协议)来传送。

当消息到达时,它被翻译成法语并且通过第2/3层的接口传递给哲学家2。

注意,每一个协议完全独立于其他协议只要接口不变。

假如翻译双方同意,他们可以随意将荷兰语换成比如说,芬兰语,并且不改变与第2层和第3层的接口。

类似地,两秘书能够由传真换成email,或电话而不妨碍(或甚至不通知)其他层。

每个进程可以加某些只是为他的对等者想要的信息。

这些信息不会向上传递给它的上一层。

分层与TCP/IP协议
TCP/IP分层模型,也被称为互联网分层模型或互联网参考模型,包括了如图5-4所示的五层。

各层之间传递的对象
应用层
消息或流
传输层
传输协议包
互联网层
IP数据报
网络接口层
网络专用的帧
物理层
TCP/IP参考模型中有四层对应于ISO参考模型中的一层或多层。

但ISO模型没有互联网层。

本节概述每一层的目的。

第一层:物理层
第一层对应于基本网络硬件,如同ISO七层参考模型的第一层。

例如,RS232的规格说明属于第一层,它给出了LAN硬件的详细的规格说明。

第二层:网络接口层
第二层协议规定了怎样把数据组织成帧以及计算机怎样在网络中传输帧,类似于ISO 七层参考模型的第二层协议。

网络接口可以由设备驱动程序组成(例如,当网络是该机器直接相连的LAN)或由一个使用它自己数据链路协议的复杂子系统组成(例如,当网络由一些使用HDLC与主机通信的包交换机组成时)。

第三层:互联网层
第三层协议规定了互联网中传输的包的格式及从一台计算机通过一个或多个路由器到最终目的地的包转发机制。

互联网层把包封装在IP数据报中,填数据报头,用路由算法(路由表)确定是直接传送数据报还是把它发送给路由器。

第四层:传输层
第四层协议,像ISO参考模型的第四层一样,规定了怎样保证可靠的传输。

为了做到这点,传输层协议软件安排让接收端发回确认消息而由发送方重发丢失的包。

传输层提供从一个应用程序到另一个应用程序的通信。

这种通信常称为端-到-端。

一台通用计算机可能在一个时间里有多个应用程序访问互联网。

传输层必须接收来自多个用户程序的数据。

为了做到这点,它对每个包增加附加信息,包括识别哪个应用程序发送给它和哪个应用程序应该接收它的代码以及一个校验和。

第五层:应用层
第五层协议对应于ISO参考模型的第六层和第七层。

每个第五层协议,诸如FTP、HTTP,都规定了一个应用程序如何使用互联网。

应用程序可以选择所需的传输类型,可以是一系列个别的消息或连续的字节流。

7.2 SQL引言
理想地,一个数据库语言必须使我们能够创建数据库和表结构;它必须使我们能够执行一些基本的日常数据管理工作(添加、删除和修改数据);并且它必须使我们能执行设计来把原始数据变换成有用信息的复杂查询。

此外,它必须让用户以最小的努力来完成这样一些基本功能,而且它的命令结构和语法必须是易于学习的。

最后,它必须是可移植的,亦即,它必须与某个基本标准一致,以致当从一个RDBMS改变为另一个时不必要重头开始学习。

SQL很好地满足这些理想化的数据库语言需求。

首先,SQL覆盖范围归入三个范畴:1.数据定义创建数据库及其表结构。

2.数据管理使用一组命令来对数据库表内的数据进行键入、校正、删除和更新。

3.数据查询使用一组命令来探索数据库内容并使得用户能把原始数据转换成有用信息。

其次,SQL是相当容易学的:它通过使用由大约30个命令组成的基本词汇表来执行所需的数据库功能。

还要好地,SQL是一个非过程式语言:你必须做的仅仅是发出要做什么的命令;不必操心它是如何做的。

最后,美国国家标准协会(ANSI)规定了一个标准SQL。

毋须介意,ANSI标准是如此有限制,以致所有的商用SQL产品都胜过它。

事实上,某些厂商已经符合要在1993年实施
的所提议的ANSI SQL2标准,因而,极少可能不做某些改变便把某个基于SQL的应用程序从一个RDBMS换到另一个RDBMS。

不过,不同的SQL方言版本共享相同的基本命令集和结构,因此使我们能得出这样的结论:存在有一个可使用的标准。

我们将使用这标准作为我们之介绍的基础。

然而,我们也将介绍几个SQL增强特性,特别是考虑到这些增强特性广泛地为很多RDBMS供销商所共有。

不要因存在几个SQL方言版本而泄气。

因为各种SQL方言版本之间的差异是微小的,适应于你的软件需求几乎没有什么麻烦。

不管你是使用XDB、ORACLE、dBASE Ⅳ、DB2、Dos下的R:BASE、IBM的OS/2数据库管理程序,还是任何其他一致公认的RDBMS软件,我们的经验是:如果你了解本章中介绍的材料,对软件手册花上几个小时将足以使你成功地使用SQL。

简而言之,你在本章获得的知识是可用于他处的。

关于学习SQL基础,有几个很好的理由:
1.ANSI标准化努力已导致关系数据库的一个事实上的查询标准。

事实上,很多关系数据库专家倾向于主张:“如果不是SQL,便不是关系型的”。

2.SQL已成为现在的和预期的将来的DBMS集成努力的基础,使我们能把层次型的、网络型的和关系型的数据库链接起来。

3.SQL已成为开发分布式数据库和数据库客户机/服务器体系结构的催化剂。

9.1 人工智能概述
人工智能(AI)确切地说是什么?作为开始,我们提供下列定义:
AI是计算机科学的一个分支,它涉及研究和创建显示某种形式智能的计算机系统:学习新概念和新任务的系统、能关于我们周围的世界进行推理和得出有用结论的系统、能理解自然语言或理解和领会视觉场景的系统,以及执行需要人的各类智能的其他种类技能的系统。

像其他一些对复杂标题的定义一样,对AI的理解需要对相关术语的理解,诸如智能、知识、推理、思维、认知、学习和若干计算机相关的术语。

尽管我们对于这些术语中很多术语缺少精确的科学定义,但我们能够给出它们的大体定义。

当然,本课文的目标之一是对与AI相关的所有术语加入特定的意义,包括它们的操作意义。

字典把智能定义为获得、理解和应用知识的能力,或者是实行思维和推理的能力。

当然,智能不只是这点。

它具体体现了有意识地和无意识地通过学习和经验获得的所有知识和技艺:高度精确的视觉和听觉感知;思维;想象;交谈、读、写、驾车、记忆和回忆事实、表达和感受情感的能力,以及更多。

智能是这些技艺的集成之和,使我们能回忆起30年或更多年未见的面孔,或建造并发送火箭到月球的能力。

是这些能力使人类区别于其他的有生命体。

并且,如同我们将看到的,这个智能的食粮是知识。

我们会一直期望建造显示这些特征的系统吗?此问题的答案是yes!一些系统早已被开发来执行很多种类的智能任务,并且对近期开发给人印象更为深刻的系统寄予了很高的期望。

现在有一些系统能从例子、从被告知的、从过去相关的经验和通过推理进行学习。

有一些系统能解决数学方面的、调度多种多样任务方面的、寻找最佳系统配置方面的、计划军事和商业的复杂策略方面的、诊断医学疾病方面的复杂问题,还有其他一些复杂系统,仅举几个例子。

有些系统能“理解”一些自然语言的大部分,有些系统的视觉好得足以“识别”照片上、摄像机和其他传感器拍摄的图像上的物体。

有些系统能够以不完备的和不确定的事实进行推
理。

显然,关于这些开发,自数字计算机问世以来,很多已完成了。

尽管有这些印象深刻的成就,我们仍然不能生产具有三岁小孩有的某些基本能力的协调而自主的系统,这些包括识别和记忆一个景象中众多的各种各样的对象、学习新的声言和把它们同对象与概念相关联,以及欣然适应多种多样的新情况的能力。

这些都是AI研究人员现在面临的挑战,并且它们都不是容易解决的问题。

在我们能期望比得上三岁小孩的性能之前,它们将需要一些重要的突破。

为获得对AI更好的理解,知道AI不是什么也是有用的。

AI不是研究和创建常规的计算机系统。

即使有人可能争辩说所有程序都显示出某种程度的智能,但AI程序将超过它,AI程序表现出的高级智能(在一定程度上)等于或超过了人在完成某个任务中所需的智能。

AI不是研究头脑,不是研究肉体,也不是研究语言,如同惯常在心理学、生理学、认知科学或语言学等领域中发现的那样。

诚然,在这些领域和AI间存在有某种交迭。

所有人都在寻求对人的智能和感觉过程有更好的理解,但是就AI而论,目标是开发一些运转的计算机系统,它们真正能执行一些需要高级智能的任务。

程序未必打算模仿人的感觉和思维过程。

确实,在不同地执行某些任务中它们会实际上超过人的一些能力。

重要的一点是这些系统都能有效而高效率地执行智能任务。

最后,看看组成整个AI的部分研究领域可更好地理解AI。

这些包括诸如机器人、存储组织、知识表示、存储和恢复、学习法模型、推断技术、常识推理、在推理和决策中不确定性的处理、理解自然语言、模式识别和机器视觉方法、检索和匹配、语音识别和合成,以及各种各样的AI工具。

迄今在AI方面我们已获得了多少成就?下一个大挑战是什么?这些问题的答案形成本课文中涉及的大部分资料。

我们将在下面几章中学习直接或间接地与这些问题有关的很多论题。

这里我们仅提到:AI正进入这样的年代,即实用的商业产品现在已可用了,包括各种各样的机器人设备、识别形状和对象的视觉系统、执行很多困难任务的专家系统(这些系统做得与人类专家一样好或许更好)、帮助调整学生的学习,并监控学生学习进度的智能教育系统、帮助用户建造专门知识库的“智能”编辑器,以及能学习以改进其性能的一些系统。

10.3 块排序算法:并行和分布式算法
当P台处理机可用,n个记录要排序时,一种可能性是把n个记录分布到P台处理机中,使得在每台处理机的局部内存存放M=[n/p]个记录的块(可能要加少量空记录来组成最后一块)。

处理机按某种索引规则被标记为P1, P2…, P p, 这种索引规则通常是由互联网络的拓扑结构所决定。

然后,这些处理机合作重新分布这些记录,使得,
(1)留在每台处理机内存中的块构成一个长度为M的有序序列S i,并且
(2)拼接这些局部序列S1, S2…, S p构成长度为n的有序序列
例如,对3台处理机,在排序之前和之后排序关键字的分布可能如下。

之前之后
P12, 7, 3 1, 2, 3
P24, 9, 1 4, 5, 6
P36, 5, 8 7, 8, 9
于是,我们现在对多处理机的整个地址空间的排序有一个约定,并且我们已定义了大小。

相关文档
最新文档