程序语言发展简述

来源:互联网 发布:macbook 软件下载 编辑:程序博客网 时间:2024/04/30 10:56

摘自《C++程序设计教程(第二版)》——清华大学出版社

程序设计语言:计算机可以识别的语言,具有特定的词法与语法规则,由人编写,用于描述解决问题的方法,供计算机阅读和执行。


发展史:

一、机器语言

机器语言:计算机本身的语言,计算机可以直接理解执行,是人类使用的第一种编程语言。机器语言由一系列指令组成,指令是计算机可识别的逐个执行的基本命令,由二进制的0和1构成。   优缺点:机器语言能为计算机直接识别和执行,效率高,但是对于人类来说却十分晦涩难懂,更难于记忆和编程。计算机语言和人类语言存在巨大鸿沟,此时的软件开发难度大,周期长,修改维护困难。


汇编语言(assembly language):汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。简单说,汇编语言是程序员使用类似英文缩写的助记符来表示指令,这些助记符构成了汇编语言。汇编语言由称为编译器(Assembler)的翻译程序将它转换成机器语言程序。汇编语言的抽象层次太低,一个简单的任务需要大量的语句实现,并且程序员还需要考虑大量的机器细节,故使用汇编语言编程难度大。汇编语言本质上还是机器语言。


机器语言与人类的自然语言习惯差别大,依赖具体的硬件系统,因此,同样属于低级语言。


大笑个人观点:假如历史中不是改良了程序设计语言,而是使硬件更加符合人类思维,那么汇编语言或者机器语言会不会迎来第二春?又会不会有后来到高级程序设计语言?大笑


二、高级程序设计语言——“面向过程”与“结构化程序设计”

高级语言,屏蔽了机器细节,不依赖于具体的硬件系统,提高了语言的抽象层次,程序中采用更有意义和更容易理解的语句,使得程序更容易描述具体的事物与过程,编程的效率大大提高。


高级语言由称为编译器(compiler)的翻译程序将它变成相应地机器语言程序。

高级语言举例:BASIC,FORTRAN(IBM开发,科学与工程计算领域),COBOL(计算机制造商,政府和工业企业计算机用户开发,擅长商业应用,常常用于编写企业软件),ALGOL。。。。


早期的高级语言面向过程,随着计算机处理问题日益复杂,程序越来越庞大,大型软件的开发遇到了严重的困难,甚至陷入“软件危机”。60年代产生了结构化程序设计的思想,为用面向过程的方法解决复杂问题提供了有力手段。结构化程序设计是软件中继子程序与高级程序设计语言后的第三个影响更为深远的里程碑。


结构化程序设计方法:

主要内容:自顶向下,逐步求精;     程序按功能划分成若干的模块,这些模块形成调用的层次树状结构;            模块间的关联尽可能简单,模块功能相对独立;          每一个模块均由顺序,选择,循环三种及基本的结构组成。

优点:由于结构化程序设计采用了模块分解与功能抽象以及自顶向下、分而治之的方法,从而将一个复杂的系统分解成易于实现和控制的子任务,显著减少了软件开发的复杂性,提高了程序的可靠性,可测试性和可维护性。结构化程序设计语言提高了语言的层次。结构化数据,结构化语句,数据抽象,过程抽象概念使程序更便于体现客观事物的结构和逻辑含义。这使得编程语言与人类的自然语言更加接近。


结构化语言:BASIC,ALGOL,Pascal,COBOL,Ada,C,其中C语言最广泛,影响最大。

C语言是1972年贝尔实验室的Dennis Richie研制开发,最初它是作为UNIX操作系统的开发工具,在贝尔实验室内部使用,后来C语言经过不断改进,成为一种功能丰富,表达力强,使用灵活方便,应用面广,目标程序高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,特别适合进行操作系统软件开发,因此引起人们的广泛重视,在短短的十几年中,风靡全世界。许多系统软件和应用软件都是用C编写的,成为计算机开发人员的必修基本功,深刻的影响了整整一代计算机开发人员。


生气个人观点:假如后来有人开发出一个新的硬件设备或操作系统,使得开发程序可以像学简单的数学一样,程序员会怎么样??这样的事情会不会发生?这样的事情发生会是因为程序员的高级思维和技术,然而这个高级思维和技术却亡了程序员???不会发生吧。。。尴尬


还接着说C语言,尽管C语言有很多优点,但它仍然是一种结构化和模块化的程序设计语言,其本质是面向过程的。在处理小规模的程序问题时,结构化程序设计语言得心应手,但是党问题比较复杂,程序的规模比较大时,结构化程序设计就显的有些力不从心,因为程序设计者必须细致的考虑程序设计的每个细节,准确考虑程序运行过程所发生的所有问题。            C语言把数据和数据处理过程分离成相互独立的实体,当数据 结构类型改变时,所有相关的处理过程都要进行相应的修改,程序的可重用性差,同时由于各种图形用户界面(graphics user interface ,GUI)软件的应用日益广泛,要求应用软件必须随时响应用户的各种操作,因此软件的功能很难用过程来描述与实现,如果仍然使用面向过程的方法与语言,软件的开发和维护将面临困境。


惊讶个人看法:觉得使用面向过程语言开发就会面临困境的观点很片面,就好比结构化程序设计思想曾经拯救面向过程,说不定哪一天又出来一个新的思考方式,使得面向过程语言重获生机啊!!!得意


继续书中:::为了解决软件开发的困境,消除结构化程序设计语言的局限,提高软件开发效率,在20世纪80年代提出了面向对象的程序设计(object-oriented program,OOP)。


三、面向对象的程序设计语言


面向对象的程序设计语言是为了支持面向对象程序设计方法而设计的程序设计语言。它与以往各种程序语言的根本不同点在于,其设计的出发点就是为了能更加直接的描述客观世界中存在的事物(及对象)以及他们之间的关系。面向对象的程序设计语言支持抽象数据类型,并且提供了封装性,继承性,多态性等机制,使得类和类库成为可重用的模块。


面向对象的语言发展经历了一个很长的发展阶段!!!!!!


大笑个人观点:创造时总是痛苦和快乐并存!!有木有!!!委屈大笑


1985年 AT&T公司贝尔实验室开发了C++,C++语言以其高效的执行赢得了广大程序设计者的喜爱。由于C++的出现,才使得面向对象的程序设计语言越来越得到重视和广泛应用。随着Internet的迅速发展,1995年5月Sun MicroSystem公司发布了一种新的面向对象的程序设计语言——java语言。java语言是从C++语言发展而来的,但比C++语言更加简单,可以看做是“简化了的C++”,它具有简单,健壮,安全,与平台无关,可移植性好和多线程等特点,是当前网络编程中首选语言。


原创粉丝点击