1、机器语言
缺点可读性差,不易记忆;编写程序既难又繁,容易出错;程序调试和修改难度巨大,不容易掌握和使用。机器语言直接依赖于中央处理器,所以用某种机器语言编写的程序只能在相应的计算机上执行,无法在其他型号的计算机上执行,也就是说,可移植性差。
2、汇编语言
为了减轻使用机器语言编程的痛苦,20世纪50年代初,出现了汇编语言。汇编语言用比较容易识别、记忆的助记符替代特定的二进制串。例如使用ADD 来替代加法的二进制指令。通过这种助记符,人们就能较容易地读懂程序,调试和维护也更方便了。但这些助记符号计算机无法识别,需要一个专门的程序将其翻译成机器语言,这种翻译程序被称为汇编程序。尽管汇编语言比机器语言方便,但汇编语言仍然具有许多不便之处,程序编写的效率远远不能满足需要。汇编语言直接操作硬件,因此汇编语言只针对特定的计算机处理器,所以几乎没有可移植性。
3、早期高级语言
1954年,第一个高级语言—FORTRAN问世了。高级语言与自然语言和数学表达式相当接近,不依赖于计算机型号,通用性较好。高级语言的使用,大大提高了程序编写的效率和程序的可读性。与汇编语言一样,计算机无法直接识别和执行高级语言,必须翻译成等价的机器语言程序(称为目标程序)才能执行。高级语言源程序翻译成机器语言程序的方法有“解释”和“编译”两种。解释方法采用边解释边执行的方法。编译方法采用相应语言的编译程序,先把源程序编译成指定机型的机器语言目标程序,然后再把目标程序和各种标准库函数连接装配成完整的目标程序,在相应的机型上执行。
4、结构化高级语言
高级语言编写程序的编写效率虽然比汇编语言高,但随着计算机硬件技术的日益发展,人们对大型、复杂的软件需求量剧增,而同时因缺乏科学规范、系统规划与测试,程序含有过多错误而无法使用,甚至带来巨大损失。20世纪60年代中后期“软件危机”的爆发,使人们认识到大型程序的编制不同于小程序。“软件危机”的解决一方面需要对程序设计方法、程序的正确性和软件的可靠性等问题进行深入研究,另一方面需要对软件的编制、测试、维护和管理方法进行深入研究。结构化程序设计是一种程序设计的原则和方法。它讨论了如何避免使用GOTO语句;如何将大规模、复杂的流程图转换成一种标准的形式,使得它们能够用几种标准的控制结构(顺序、分支和循环)通过重复和嵌套来表示。C语言就是一种结构化语言。一般来说,计算机语言要处理两个概念——数据和算法(程序=数据+算法)。数据是程序使用和处理的信息,而算法是程序使用的方法。C语言是过程性语言,这意味着它强调的是编程的算法方面。
但是,到了20世纪70年代末期,随着计算机应用领域的不断扩大,对软件技术的要求越来越高,结构化程序设计语言和结构化程序设计方法又无法满足用户需求的变化了,其缺点也日益显露出来:
(1)代码的可重用性差。
(2)可维护性差。
(3)稳定性差。
(4)难以实现。
人的思维焦点通常是在于事物和实体,以及它们的属性和活动,比如说当考虑会计部门的应用程序时,我们会考虑下列内容:
出纳支付工资;职工出具凭证;财务主管批准支付;出纳记账。
但实际应用中,要决定如何通过数据结构、变量和函数来实现这个应用程序却是很困难的。
5面向对象语言
结构化程序设计方法与语言是面向过程的,存在较多的缺点,同时程序的执行是流水线式的,在一个模块被执行完成前,不能干别的事,也无法动态地改变程序的执行方向。这和人们日常认识、处理事物的方式不一致。人们认为客观世界是由各种各样的对象(或称实体、事物)组成的;每个对象都有自己的内部状态和运动规律,不同对象间的相互联系和相互作用构成了各种不同的系统,进而构成整个客观世界;计算机软件主要就是为了模拟现实世界中的不同系统,如物流系统、银行系统、图书管理系统、教学管理系统等。因此,计算机软件可以认为是,现实世界中相互联系的对象所组成的系统,在计算机中的模拟实现。
为了使计算机更易于模拟现实世界,1967年挪威计算中心开发出了Simula67语言,它提供了比子程序更高一级的抽象和封装,引入了数据抽象和类的概念,被认为是第一个面向对象程序设计语言。它对后来出现的面向对象语言,如C++、Java、C#产生了深远的影响。
随着面向对象语言的出现,面向对象程序设计方法也应运而生且得到迅速发展,面向对象的思想也不断向其他方面渗透。1980年Grady Booch提出了面向对象设计的概念,之后面向对象分析的概念也被提出。面向对象程序设计在软件开发领域掀起了巨大的变革,极大地提高了软件开发效率。
程序语言越低级,则必须对过程描述的越具体,指令也就越接近机器的硬件逻辑。相反,程序语言越高级,就越接近对问题的描述与表达,因而更直观,更容易被人们所理解。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
转载自:http://blog.csdn.net/hurlan/article/details/20941793