《计算机语言(或称程序设计语言)的发展过程.doc》由会员分享,可在线阅读,更多相关《计算机语言(或称程序设计语言)的发展过程.doc(5页珍藏版)》请在金锄头文库上搜索。
1、计算机语言(或称程序设计语言)的发展过程是其功能不断完善、描述问题的方法越来越贴近人类思维方式的过程。 (1)第一代语言机器语言 机器语言是计算机诞生和发展初期使用的语言,表现为二进制的编码形式,是由CPU可以直接识别的一组由0和1序列构成的指令码。这种机器语言是从属于硬件设备的,不同的计算机设备有不同的机器语言。直到如今,机器语言仍然是计算机硬件所能“理解”的惟一语言。在计算机发展初期,人们就是直接使用机器语言来编写程序的,那是一项相当复杂和繁琐的工作。 例如,下面列出的一串二进制编码 011011 000000 000000 000001 110101 命令计算机硬件完成清除累加器,然后把
2、内存地址为117的单元内容与累加器的内容相加的操作。 可以看出,使用机器语言编写程序是很不方便的,它要求使用者熟悉计算机的所有细节,程序的质量完全决定于个人的编程水平。特别是随着计算机硬件结构越来越复杂,指令系统变得越来越庞大,一般的工程技术人员难以掌握程序的编写。为了把计算机从少数专门人才手中解放出来,减轻程序设计人员在编制程序工作中的繁琐劳动,计算机工作者开展了对程序设计语言的研究以及对语言处理程序的开发。 (2)第二代语言汇编语言 汇编语言开始于20世纪50年代初期,它是用助记符来表示每一条机器指令的。例如,上面的机器指令可以表示为 CLA 00 017由于便于识别记忆,汇编语言比机器语
3、言前进了一步。但汇编语言程序的大部分语句还是和机器指令一一对应的,语句功能不强,因此编写较大的程序时仍很繁琐。而且汇编语言都是针对特定的计算机或计算机系统设计的,对机器的依赖性仍然很强。用汇编语言编好的程序要依靠计算机的翻译程序(汇编程序)翻译成机器语言后方可执行,但这时用户看到的计算机已是装配有汇编程序软件的计算机。(3)第三代语言高级语言、算法语言高级语言起始于20世纪50年代中期,它允许人们用熟悉的自然语言和数学语言编写程序代码,可读性强,编程方便。例如,在高级语言中写出如下语句: X(A+B)/(C+D)与之等价的汇编语言程序如下: CLA C ADD DSTD M CLA A ADD
4、 B DIV MSTD X 显然,前者比后者容易得多。 用一种高级语言写成的源程序可以在具有该种语言编译系统的不同计算机上使用,但这种语言必须经过编译或解释程序译成机器语言后才能执行。BASIC、FORTRAN、COBOL、PASCAL等都属于第三代语言。 第三代语言又称为“过程语言”,顾名思义,它是面向“过程的”。用过程语言编写程序,用户可不必了解计算机的内部逻辑,而主要考虑解题算法的逻辑和过程的描述,把解决问题的执行步骤通过语言告诉给计算机。在第三代语言的发展中,值得一提的有FORTRAN语言和COBOL语言。FORTRAN语言是科学和工程计算领域中的传统编程语言,它首先引入了与汇编语言中
5、的助记符有本质区别的变量的概念,并引入了表达式语句、子程序等概念,成为以后出现的其他高级程序设计语言的重要基础。FORTRAN语言一经问世便很快流行起来,因其执行的高效率与近乎完善的输入/输出功能,至今在科学计算领域仍充满着生命力。COBOL语言是数据处理方面的标准语言,它对程序设计语言发展的主要贡献是引入了独立于机器的数据描述概念和与英语类似的语法结构,其中的数据描述概念正是数据库管理系统中主要概念的雏形。COBOL语言的出现,使人们开始意识到计算机不仅可应用于科学计算领域,而且适用于各种事务处理领域,大大拓宽了计算机的应用范围。(4)第四代语言非过程化语言 用户在使用这种语言时,不必关心问
6、题的解法和处理过程的描述,只需说明所要完成的工作目标及工作条件,就能得到所要的结果,而其他的工作都由系统来完成。换句话说,原来费时费力的编程工作现在主要由系统来承担。因此,非过程化语言比过程化语言使用起来更加方便。但是非过程化语言目前只适用于部分领域,其通用性及灵活性不如过程化语言。 如果说第三代语言要求人们告诉计算机怎么做,那么第四代语言只要求人们告诉计算机做什么。因此,人们称第四代语言是面向目标的语言。 关系数据库的标准语言SQL即属于第四代语言。例如,用户想检索出满足一定条件的学生名单,只要通过SQL语言的SELECT语句告诉计算机查询的范围(查学生信息表)、查询内容(查出姓名和年龄)和
7、检索条件(查年龄小于18岁的学生)即可得到查询结果。该语句形式如下: SELECT sname,age FROM students WHERE age18(5)第五代语言智能性语言第五代语言除具有第四代语言的基本特征外,还具备许多新的功能,特别是具有一定的智能。 PROLOG(PROgramming in LOGic)语言是第五代语言的代表。智能化语言主要应用于抽象问题求解、数据逻辑、公式处理、自然语言理解、专家系统和人工智能等领域。在计算机语言的发展过程中,新的技术和新的思想不断出现。在20世纪60年代的10年时间里,人们至少发明了200多种高级语言。比较著名的有应用于人工智能领域的LISP
8、语言,涉及到矩阵运算的科学计算领域的APL语言,成功地用于文本处理领域的SNOBOL语言,用于处理仿真问题的SIMULA语言,以及交互式的解释型程序设计语言BASIC。 20世纪70年代以来,随着结构化程序设计思想的日益深入,使得这段时期问世的几种程序设计语言的控制结构大为简化,比较有代表性的有PASCAL、Ada、C语言等。目前用于教学及软件研制中的PASCAL语言在支持结构化程序设计思想的同时,吸收了其他语言中用户定义数据类型等优点,使其数据抽象进入了一个新的层次。Ada语言以可靠性、可维护性、可读性及高效率为设计目标,集各种过程性程序设计语言的优秀思想之大成,在PASCAL语言的基础上,
9、增加和扩充了数值计算、输入/输出、数据抽象、并发处理、实时处理、异常处理等内容,集中体现了软件工程学、程序设计语言学、程序设计方法学的优秀成果,支持程序的模块性、可移植性、可扩充性及抽象与信息隐藏,有助于高效地开发与维护程序。 C语言是美国Bell实验室开发成功的。当时的高级语言基本上都不适合开发系统软件,系统软件都是用机器语言或汇编语言编写的,而C语言的许多类汇编语言特征却使其大获成功。C语言的表达式简洁,具有丰富的运算符、控制结构与数据结构。C语言已不限于系统软件的开发,而成为当前最流行的程序设计语言之一。虽然C语言并不是为教学设计的(在一定意义上来说,C语言并不适合于教学),但由于它的实
10、用性和广泛的市场占有率,因此在国内外计算机程序设计的课程中被广泛采用。 20世纪80年代初开始提出的“面向对象”(Object-Oriented)概念是相对于“面向过程”的一次革命。C+便是一种面向对象的程序设计语言。“面向对象”不仅仅作为一种语言,更作为一种方法论贯穿于软件设计的各个阶段。面向对象的技术在系统程序设计、数据库及多媒体应用等诸多领域得到了广泛应用,面向对象的程序设计思想将会主导今后程序设计语言的发展。如果说,面向过程的语言仍然反映了计算机的思维方式,那么面向对象的程序设计语言则充分体现了人们看待周围事物所采用的面向对象的观点。这种观点认为:我们周围的世界是由一个个的对象组成的,
11、而周围所发生的一切是对象间相互作用的结果。 面向对象的技术进一步缩小了人脑与电脑思维方式上的差异,并可以使人们在利用计算机解决问题时,不是将主要精力花在如何描述解决问题的过程上(即编程上),而是花在对要解决问题的分析上。近年来,一种新的语言Java正逐渐成为程序设计的流行语言。Java的诞生最早大概可追溯至1991年4月,Sun的绿色计划(Green Project)开始着手于发展消费性电子产品,所使用的语言是C、C+及Oak(Java语言的前身),后因语言本身和市场的问题,使得消费性电子产品的发展无法达到当初预期的目标;再加上网络的兴起,绿色计划也因此而改变了发展方向,此时已是1994年了。
12、 随着WWW的兴起,Java终于崭露头角。人们称Java是Internet上的世界语,是最佳的网络应用开发语言。Java的诞生,从根本上解决了Internet的异质、代码交换以及网络程序的安全性等诸多问题。首先,Java是一种与平台无关的语言,Java程序编译后,生成的字节代码(Byte-Code)运行在Java虚机器(实际上是一个解释器)上。一个操作系统平台只要提供Java虚机器,Java程序就可以在上面运行。从理论上讲,Java程序可以运行于所有的操作系统平台上,从根本上解决了Internet的异质问题。其次,Java采用了可移动代码技术,在网络上不仅可以进行无格式的数据信息交换,而且可以
13、进行程序交换。 Java是比较纯的面向对象的语言,它的绝大多数程序实体都是对象,利用对象的封装性可以大大降低网络上程序交换的复杂性。最后,Java是一种更安全的语言,它消除了C和C+中众多的不安全因素(Java为了追求语言简单性和安全性,把C程序员推崇备至的指针也取消了),提供了诸多安全保障机制,例如异常处理、代码检查等,比其他语言更适合网络应用软件的开发。4.2 Microsoft Windows 操作系统简述4.2.1 Windows家族: Windows这个词用于一系列不同的产品,它们可以划分为以下四个类别: 16位操作环境:这些产品只是提供了一个图形用户界面或桌面,还要有一个独立的操作
14、系统提供必要的服务,例如读取磁盘服务、显示器和键盘的输入等等。这个系列的产品包括Windows 1.0(1985年)、Windows 2.0(1987年)以及它的近似产品Windows 286和Windows 386、Windows 3.0和Windows 3.1。它们都不能脱离DOS运行。 混合的16/32位操作环境:这个系列的Windows是16位的Windows的升级版本,仍然需要DOS操作系统才能运行,但是由于和微软的MS-DOS组件整合在一起作为一个整体来发售,这样就不用再单独购买MS-DOS以运行Windows了。这个系列包括Windows 95(第一版发行于1995年,后来的改进
15、版本发行于1996年和1997年),以及三个版本的Windows 98(1998年、1999年和2000年)。这三个版本最终发展成为Windows ME。但是它作为Windows 98家族的资格并没有在广告上出现。 32位操作系统环境:起初是为更高性能的商业市场设计而编写的独立的32位操作系统。这个系列包括Windows NT 3.1(1992年)、NT 3.5、NT 3.51、NT 4.0、Windows 2000和Windows XP等。 64位操作系统环境:最新的Windows版本开始采用64位操作系统环境,虽然不管是Intel的EM64T还是AMD的x86-64在本质上都是一种32位扩展指令集,兼容英特尔的EM64T扩展指令集和AMD的x86-64指令集(Intel的EM64T其实是其兼容指令集)。这个系列的产品包括Windows XP 64位版和Windows Server 2003 64位版。IA-64是Intel的安腾处理器使用的完全不同的纯64位RISC指令集,在32位兼容模式下性能极为低下而且基本不兼容现有的x86软件,故和现有桌面平台所谓的64位元指令集是完全不同的概念,Microsoft仅仅有Windows 2000 Advanced