计算机语言(或称程序设计语言)的发展过程

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

计算机语言(或称程序设计语言)的发展过程是其功能不断完善、描述问题的方法越来越贴近人类思维方式的过程。

(1)第一代语言——机器语言

机器语言是计算机诞生和发展初期使用的语言,表现为二进制的编码形式,是由CPU 可以直接识别的一组由0和1序列构成的指令码。这种机器语言是从属于硬件设备的,不同的计算机设备有不同的机器语言。直到如今,机器语言仍然是计算机硬件所能“理解”的惟一语言。在计算机发展初期,人们就是直接使用机器语言来编写程序的,那是一项相当复杂和繁琐的工作。

例如,下面列出的一串二进制编码

011011 000000 000000 000001 110101

命令计算机硬件完成清除累加器,然后把内存地址为117的单元内容与累加器的内容相加的操作。

可以看出,使用机器语言编写程序是很不方便的,它要求使用者熟悉计算机的所有细节,程序的质量完全决定于个人的编程水平。特别是随着计算机硬件结构越来越复杂,指令系统变得越来越庞大,一般的工程技术人员难以掌握程序的编写。为了把计算机从少数专门人才手中解放出来,减轻程序设计人员在编制程序工作中的繁琐劳动,计算机工作者开展了对程序设计语言的研究以及对语言处理程序的开发。

(2)第二代语言——汇编语言

汇编语言开始于20世纪50年代初期,它是用助记符来表示每一条机器指令的。例如,上面的机器指令可以表示为

CLA 00 017

由于便于识别记忆,汇编语言比机器语言前进了一步。但汇编语言程序的大部分语句还是和机器指令一一对应的,语句功能不强,因此编写较大的程序时仍很繁琐。而且汇编语言都是针对特定的计算机或计算机系统设计的,对机器的依赖性仍然很强。用汇编语言编好的程序要依靠计算机的翻译程序(汇编程序)翻译成机器语言后方可执行,但这时用户看到的计算机已是装配有汇编程序软件的计算机。

(3)第三代语言——高级语言、算法语言

高级语言起始于20世纪50年代中期,它允许人们用熟悉的自然语言和数学语言编写程序代码,可读性强,编程方便。例如,在高级语言中写出如下语句:

X=(A+B)/(C+D)

与之等价的汇编语言程序如下:

CLA C

ADD D

STD M

CLA A

ADD B

DIV M

STD X

显然,前者比后者容易得多。

用一种高级语言写成的源程序可以在具有该种语言编译系统的不同计算机上使用,但这种语言必须经过编译或解释程序译成机器语言后才能执行。BASIC、FORTRAN、COBOL、PASCAL等都属于第三代语言。

第三代语言又称为“过程语言”,顾名思义,它是面向“过程的”。用过程语言编写程序,用户可不必了解计算机的内部逻辑,而主要考虑解题算法的逻辑和过程的描述,把

解决问题的执行步骤通过语言告诉给计算机。

在第三代语言的发展中,值得一提的有FORTRAN语言和COBOL语言。

FORTRAN语言是科学和工程计算领域中的传统编程语言,它首先引入了与汇编语言中的助记符有本质区别的变量的概念,并引入了表达式语句、子程序等概念,成为以后出现的其他高级程序设计语言的重要基础。FORTRAN语言一经问世便很快流行起来,因其执行的高效率与近乎完善的输入/输出功能,至今在科学计算领域仍充满着生命力。

COBOL语言是数据处理方面的标准语言,它对程序设计语言发展的主要贡献是引入了独立于机器的数据描述概念和与英语类似的语法结构,其中的数据描述概念正是数据库管理系统中主要概念的雏形。COBOL语言的出现,使人们开始意识到计算机不仅可应用于科学计算领域,而且适用于各种事务处理领域,大大拓宽了计算机的应用范围。

(4)第四代语言——非过程化语言

用户在使用这种语言时,不必关心问题的解法和处理过程的描述,只需说明所要完成的工作目标及工作条件,就能得到所要的结果,而其他的工作都由系统来完成。换句话说,原来费时费力的编程工作现在主要由系统来承担。因此,非过程化语言比过程化语言使用起来更加方便。但是非过程化语言目前只适用于部分领域,其通用性及灵活性不如过程化语言。

如果说第三代语言要求人们告诉计算机怎么做,那么第四代语言只要求人们告诉计算机做什么。因此,人们称第四代语言是面向目标的语言。

关系数据库的标准语言SQL即属于第四代语言。例如,用户想检索出满足一定条件的学生名单,只要通过SQL语言的SELECT语句告诉计算机查询的范围(查学生信息表)、查询内容(查出姓名和年龄)和检索条件(查年龄小于18岁的学生)即可得到查询结果。该语句形式如下:

SELECT sname,age

FROM students

WHERE age<18

(5)第五代语言——智能性语言

第五代语言除具有第四代语言的基本特征外,还具备许多新的功能,特别是具有一定的智能。 PROLOG(PROgramming in LOGic)语言是第五代语言的代表。智能化语言主要应用于抽象问题求解、数据逻辑、公式处理、自然语言理解、专家系统和人工智能等领域。

在计算机语言的发展过程中,新的技术和新的思想不断出现。

在20世纪60年代的10年时间里,人们至少发明了200多种高级语言。比较著名的有应用于人工智能领域的LISP语言,涉及到矩阵运算的科学计算领域的APL语言,成功地用于文本处理领域的SNOBOL语言,用于处理仿真问题的SIMULA语言,以及交互式的解释型程序设计语言BASIC。

20世纪70年代以来,随着结构化程序设计思想的日益深入,使得这段时期问世的几种程序设计语言的控制结构大为简化,比较有代表性的有PASCAL、Ada、C语言等。

目前用于教学及软件研制中的PASCAL语言在支持结构化程序设计思想的同时,吸收了其他语言中用户定义数据类型等优点,使其数据抽象进入了一个新的层次。

Ada语言以可靠性、可维护性、可读性及高效率为设计目标,集各种过程性程序设计语言的优秀思想之大成,在PASCAL语言的基础上,增加和扩充了数值计算、输入/输出、数据抽象、并发处理、实时处理、异常处理等内容,集中体现了软件工程学、程序设计语言学、程序设计方法学的优秀成果,支持程序的模块性、可移植性、可扩充性及抽象与信息隐藏,有助于高效地开发与维护程序。

C语言是美国Bell实验室开发成功的。当时的高级语言基本上都不适合开发系统软

相关文档
最新文档