您的位置:首页 > 其它

语言的发展过程

2017-06-18 00:00 281 查看
高级语言的发展也经历了从早期语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程。相应地,软件的开发也由最初的个体手工作坊式的封闭式生产,发展为产业化、流水线式的工业化生产。

6 0年代中后期,软件越来越多,规模越来越大,而软件的生产基本上是人自为战,缺乏科学规范的系统规划与测试、评估标准,其恶果是大批耗费巨资建立起来的软件系统,由于含有错误而无法使用,甚至带来巨大损失,软件给人的感觉是越来越不可靠,以致几乎没有不出错的软件。这一切,极大地震动了计算机界,史称“软件危机”。人们认识到:大型程序的编制不同于写小程序,它应该是一项新的技术,应该像处理工程一样处理软件研制的全过程。程序的设计应易于保证正确性,也便于验证正确性。1 9 6 9年,提出了结构化程序设计方法,1 9 7 0年,第一个结构化程序设计语言—P a s c a l语言出现,标志着结构化程序设计时期的开始。

8 0年代初开始,在软件设计思想上,又产生了一次革命,其成果就是面向对象的程序设计。在此之前的高级语言,几乎都是面向过程的,程序的执行是流水线似的,在一个模块被执行完成前,人们不能干别的事,也无法动态地改变程序的执行方向。这和人们日常处理事物的方式是不一致的,对人而言是希望发生一件事就处理一件事,也就是说,不能面向过程,而应是面向具体的应用功能,也就是对象(o b j e c t)。其方法就是软件的集成化,如同硬件的集成电路一样,生产一些通用的、封装紧密的功能模块,称之为软件集成块,它与具体应用无关,但能相互组合,完成具体的应用功能,同时又能重复使用。对使用者来说,只关心它的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是它内部的事,使用者完全不用关心,C + +、V B、D e l p h i就是典型代表。

高级语言的下一个发展目标是面向应用,也就是说:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理,这就是非过程化的程序语言。

。。,但不涉及这些记号的特定含义,也不涉及使用者。

语言的种类千差万别。但是,一般说来,基本成分不外4种。
数据成分。用以描述程序中所涉及的数据。
运算成分。用以描述程序中所包含的运算。
控制成分。用以表达程序中的控制构造。
传输成分。用以表达程序中数据的传输。

程序设计语言是软件的重要方面。它的发展趋势是模块化、简明性和形式化。
模块化。不仅语言具有模块成分,程序由模块组成,而且语言本身的结构也是模块化的。
简明性。涉及的基本概念不多,成分简单,结构清晰,易学易用。
形式化。发展合适的形式体系,以描述语言的语法、语义、语用。

程序设计语言是人们为了描述计算过程而设计的一种具有语法语义描述的记号。对计 算机工作人员而言,程序设计语言是除计算机本身之外的所有工具中最重要的工具,是其它 所有工具的基础

最早的一代程序设计语言是机器语言;第二代语言是汇编语言;第三代语言是所谓的高 级语言,它主要有四种范型:命令式语言、函数式语言、逻辑式语言与对象式语言;第四代语 言是面向数据库的,实际上它不只是语言而且也是交互式程序设计环境。程序设计语言的发 展主要经历了这四代,也有人把逻辑式语言、函数式语言,甚至于对象式语言称为第五代语 言。这五代语言中,前三代语言的发展有明确的先后界限,而后三代语言之间则没有这些界 限,它们仍然在同时发展。

,能不能用更接近于自然语言与数学语言的语言。经过 努力,第二代语言——汇编语言问世了。汇编语言也是一种面向机器的程序设计语言, 它用助记符号来表示机器指令的操作符与操作数(亦称运算符与运算对象),如,用"ADD"与" MOVE"分别取代机器语言中的加法与代码移动操作。汇编指令与机器指令之间关系是一对一 的关系,汇编语言程序要经过一特定的翻译程序(即汇编程序)将其中的各个指令逐个翻译成 相应的机器指令后才能执行。汇编语言的问世使人们在编写程序时不必再花较多的精力去 记忆、查询机器代码与地址,编程工作变得容易多了。
尽管与机器语言相比,汇编语言的抽象程度要高得多,但由于它们之间是一对一的关 系,用它编写哪怕是一个很简单的程序,也要使用数百条指令。为了解决这个问题,人们又研 制出了宏汇编语言,一条宏汇编指令可以翻译成多条机器指令,这使得人们的程序设计 工作 量得以减轻一些。为了解决由多人编写的大程序的拼装问题,人们又研制出了连接程序,它 用于把多个独立编写的程序块连接组装成一个完整的程序。虽然汇编语言比机器语言好学 、好记、好用,但由于汇编语言一般都是针对特定的计算机或计算机系统设计的,因此它对 机器的依赖性很强,它的低级性也使得人们不易于用它编写较大的程序,而且在机器语言中 存在的许多其它问题在汇编语言中没有得到很好解决。

种以字符形式代替机器码的指令称为汇编指令,其指令集合称为汇编语言。为了加强汇编语言的能力,加入了一些不是机器码指令的语句,这种汇编语言称为宏汇编语言。虽然使用宏汇编语言比使用机器码方便多了,但是利用汇编语言进行编程依然是非常辛苦的。

由汇编语言写成的程序是一个文本文件(由ASCII 表示,人是可以看懂的),称为汇编语言源程序。CPU不认识这种程序(它只认机器码指令),所以执行之前要先由计算机将其转化为由机器码指令构成的目的程序,这个过程叫汇编。由机器码指令转化为汇编语言程序的过程叫反汇编。汇编语言要将程序中的每一步CPU的动作指明,仍极烦琐。但由汇编语言编制的程序运行效率高,故在专业人员中仍得到广泛的应用。如果说机器码指令是第一代计算机语言,汇编语言则是第二代语言

高级语言编制的源程序依然是文本文件,计算机仍然不能直接执行,也要转化为机器码指令的目的程序才能执行。

转化的方法有解释和编译两种。

解释的方法是对源程序中的每一句命令都先把它翻译成为可以执行的用二进制数表示的目的代码予以执行,执行完毕后再解释、执行下一句。这样的好处是对于调试程序非常方便,哪一句出了问题就可以直接地显示和修改。缺点是速度太慢。就像我们以零售方式去买大量的货物一样不合适。

编译的方法是首先对源程序从头到尾进行扫描,找出所有可以识别出来的语法错误和一些逻辑错误,并要求用户对源程序再次编辑改正,直到再次编译时不再发现错误。编译程序对源程序再次扫描进行优化后,得出由机器码指令构成的工作文件,此时编译过程完毕。由于高级语言将不少功能作为函数提供给用户使用,而用户程序中仅仅给出了函数名并没有完成函数功能的程序。所以要从编译系统提供的库文件中找出相应的函数程序和工作文件,合成为可以执行的目的程序。这个过程叫做链接。所以,一个高级语言源程序的执行要经过编辑、编译、链接、执行等几个过程。由于一些软件公司提供了集成化环境(如Turbo C,Turbo Pascal),用户不必自己直接一步一步地执行这些过程,而是由集成化环境软件代替人工执行了,但是实际工作并没有消失。

软件系统中,提供编辑源程序功能的编辑程序、解释功能的程序、编译功能的程序和链接的程序组成编译系统。

为了方便用户编辑文本文件(包括源程序或称源文件及各种文书文件),系统软件提供了多种编辑工具。如早期的行编辑(EDLIN.COM)及以后的全屏幕编辑(EDIT.COM,WORDSTAR等)。为方便中文的编辑,我国的计算机工作者开发了CCED,WPS 等编辑软件。解释和编译程序并不通用,不同的高级语言各自具有不同的编译程序。近来为方便用户,计算机软件生产厂家提供了一体化的编译环境,将各个有关功能都集成于一体,为程序的编辑、运行、调试提供了方便。

人们称高级语言是第三代语言,其特点是面向过程。所谓面向过程,是指用户在程序中不但要说明解决什么问题,还要告诉计算机如何去解决,即详细地告诉计算机解决问题的每一个步骤。有人称此时的计算机是“勤快的笨蛋”。计算机技术的发展为适应用户的要求,只需描述要解决的问题,这就要求计算机具有一定的智能。目前称具有这种功能的语言为第四代语言(4GL)。但完全具有这种功能不是一件容易的事。一些称为4GL 的编程语言只能在一个小范围内使用。现实离人们对于第四代语言的期待还相差很远。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: