码迷,mamicode.com
首页 > 其他好文 > 详细

个人计算、分布式计算与客户/服务器计算

时间:2015-05-22 15:01:55      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

1.5 个人计算、分布式计算与客户/服务器计算

1977年,Apple计算机公司使个人计算(personal computer)得以普及。最初,拥有一台计算机只是爱好者的梦想,随着它的价格不断降低,人们可以购买供个人或办公使用的计算机。1981年,世界上最大的计算机广家IBM公司推出了IBM个人计算机(IBM Personal computer)。一夜之间,个人计算机遍布公司、企业和政府机关。

然而这些计算机只是“独立”的个体,各自做自己的工作,要通过磁盘复制来共享信息(通常称为暗联网)。尽管早期个人计算机不够强大,不能同时服务于多个用户,但这些机器可以链接在计算机网络中,可以接入组织内的局域网(Local area Network,LAN),还可以通过单位内部的电话线完成链接。这样就在组成化计算中出现了分布式计算(distributed computing)结构,其处理不是在某个中央计算机上进行,而是由分布于网络中的机器完成。个人计算机已经足够强大,能够处理个人用户的计算要求并处理电子信息传递等基本通信任务。

如今,最强大的个人计算机已经可以和十年前几百万美元的机器相媲美。最强大的台式计算机(称为工作站,workstation)对个人用户提供了大量的功能。在网络上.有些计算机向遍布整个网络的客户提供数据存取服务,这些计算机称为文件服务器(file server)。通过这种方式.在网络上共享信息很容易,因而产生了客户—服务器结构o C和C++已经成为编写操作系统、计算机网络和分布式客户/服务器应用程序软件的首选编程语言。如今最常见的操作系统如UNIX、Microsoft的基于windows系统和IBM的os/2都提供了本节介绍的功能。

1.6 机器语言、汇编语言和高级语言

程序员用各种编程语言编写指令,有些是计算机直接理解的,有些则需要中间翻译(tranlation)的步骤。如今使用的计算机语言有几百种,可以分为三大类:

 1.机器语言
 2.汇编语言
 3.高级语言

任何计算机只能直接理解本身酌机器语言(machine language)。机器语言是特定计算机的自然语言,由计算机的硬件设计定义。机器语言通常由一系列数字组成(最终简化0和1),让计算机一次一个地执行最基本的操作。机器语言非常繁琐,下面的机器语言程序将工龄工资和基础工资相加,并把结果保存在工资总额中:

+1300042774
+1400593419
+1200274027

随着计算机越来越普及,机器语言编程对大多数程序员显然太慢、太繁琐。程序员不用计算机直接理解的一系列数字,而是用类似英文缩写的助记将来表示计算机的基本操作,这些助记符构成了汇编语言(assembly language)。称为汇编器(assembler)的翻译程序以计算机的速度将汇编语言程序转换为机器语言。下列汇编程序也是工龄工资和基础工资相加,并将结果保存在总工资中,但要比相应的机器语言清晰得多:

 LOAD BASEPAY
 ADD OVERPAY
 STORE GROSSPAY

尽管这种代码对于人们一目了然,但计算机却无法理解,必须先翻译为相应的机器语言。

随着汇编语言的出现,计算机的使用迅速增加,然而即使是最简单的任务.也需要许多条指令才能完成。为了加速编程过程,人们开发了高级语言(high-level language),用一条语句完成大量任务。称为编译器(compiler)的翻译程序将高级语言程序变为相应的机器语言。高级语言使程序员能够编写更像英语的指令,可以包含常用的数学符号。将工龄工资和基础工资相加.并把结果保存在总工资中,可以用下列高级语言程序:

 grossPay = basePay + overTimePay

显然,从程序员角度看,高级语言比机器语言和汇编语言都要强得多。 C和C++是最强大最广泛使用的高级语言。

将高级语言程序编译为相应的机器语言的过程可能需要大量时间。解释器(interpreter)程序可以直接执行高级语言程序,而不必先将这些程序编译成相应的机器语言。尽管编译程序的执行速度比解释程序更快,但解释器在程序开发环境中更常用,因为增加新特性和纠正错误时经常需要重

新编译程序。一旦程序开发完成,编译版本的运行最有效。

 

1.7 C语言与C++的历史

C++是从C语言演变而来的,而C语言又是从两个编程语言BCPL和B演变而来的、BCPL是Martin Richards于1967年开发的,用于编写操作系统软件和编译器。Ken Thompson在他的B语言(1970年在贝尔实验室)。DCPL和B都是“无类型”语言,每个数据项在内存中占一个“字”(word)长、如果要将数据项作为整数或实数处理,编程的工作量会很大。

C语言是从D语言演变而成的,由贝尔实验室的Dennis Ritchie开发,最初于1972年在DEC PDP—11计算机上实现。C语言使用了BCPL和B的许多重要概念,同时增加了数据类型和其他特性。C语言最初作为UNIX操作系统的开发语言而闻名于世。如今,大多数操作系统都是用C/C++写成的。二十多年来,C语言已经遍布在大多数计算机上。C语言是硬件无关的,只要仔细设计。就可以编写能移植列大多数计算机上的C语言程序。

到20世纪70年代未期,C语言演变成现在所谓的“传统C”、“经典CPP或“Kernighan/RitchieC"。1978年Prentice Hall公司出版了Kernighan和Ritchie合作的著作《The CProgrmmming Language》,引起了人们对C语言的广泛关注(见参考文献Ke78)。

C语言在各种不同类型计算机(有时称为硬件平台)上的普及导致了许多变形。它们虽然相似,但通常互不兼容。对需要为不同平台编写可移植程序的开发人员.这是个严重问题,显然需要有个标准的C语言版本。1983年,美国国家计算机与信息处理标准委员会(x3)成立了x3JII技术分会,目的是提供无歧义性且与机器无关的语言定义。1989年推出了这种语言标准。AN5I与国际标准化组织(IS0)合作.在全球范围内将C语言标淮化,1990年推出了联合标准文档.称为ANSI/IS09899:1990。这个文档可以从ANSI获得副本。1988年推出的Kernighan 和Ritchie著作的第二版体现了该版本(称为ANSI C),这也是目前全世界使用的版本(见参考文献Ke88)o

可移植性提示1.1

由于c语言是标准化、硬件无关、广为使用的语言,因此用C语言编写的应用程序通常只要稍作修改或不经修改即可在多种不同的计算机系统中运行。

C++是C语言的扩展,是20世纪80年代初由贝尔实验室的Bjarne stroustrup开发的。C++的许多特性是从c语言中派生的,但更重要的是,它提供了面向对象编程(object-oriented programming)的功能。

软件业正在酝酿一场革命,最终日标是更快、更正确、更经济地建立软件,新的、更强大的软件需求迫在眉睫。对象(object)实际上是模拟实际项目的可复用软件组件(component)。软件开发人员发现,利用模块化、面t向对象的设计和实现方法与过去结构化编程方法相比较,可以使软件开发小组的生产率更高。面向对象编程的优势在于更容易理解、纠正和修改。

许多面向对象的语言也纷纷涌现,包括最著名的由Xerox的Palo Alto研究中心(PARC)开发的small talk。Smalltalk是纯粹的面向对象的语言,其所有的编程元素都是“对象”。C++则是一种“混合型语言“,可以用C语言方式、面向对象方式或兼用两种方式进行编程。1.9节将介绍基于C/C++的新语言——Java。

研究生入学考试规章制度http://www.kyjxy.com/yuanxiao/zhengce/
考研英语真题下载http://www.kyjxy.com/yingyu/zhenti/

个人计算、分布式计算与客户/服务器计算

标签:

原文地址:http://www.cnblogs.com/along-may/p/4522175.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!