`
andyhu1007
  • 浏览: 193925 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

语言发展史

阅读更多

1. 纵观程序设计语言的发展,一个很显著的特点的是以机器的性能换取人的效率,以提高开发者的工作效率和满足人的需求为目标,在所有的资源中人是最昂贵的资源,因而程序的编写从面向机器逐渐向面向人过渡。

 

2. 早期二进制代码是完全面向机器的,机器可以直接执行,不需要任何编译或解释环节,因而执行效率极高,但用二进制编写程序对于人来说,不但枯燥无味而且工作效率极其低下,一连串的杂乱无章01代码要人去理解和记忆是不可能的

 

3. 人们只需要识记相对简单的汇编指令集,但是汇编指令仍然是面向机器的,不同机器上有不同的指令集,机器的体系结构对汇编指令源程序的影响很大,在一台机器上能够运行的程序往往在另一台机器上不能正常运行,开发大型程序的工作量极大,后期的维护工作也很困难。

 

4. 编译器技术进一步走向成熟,高级语言应运而生。高级语言类似自然语言又区别与自然语言,对人来说很容易理解和学习,在语法、句法和文法方面都有严格的要 求,比起汇编语言,高级语言不仅容易记忆、掌握和使用,而且是面向问题的,为特定应用领域的某些问题提供了良好的解决方案。

 

5. 机器要理解并执行一种高级语言就必须要有一个“中介”充当语言与机器的桥梁作用,这个“中介”根据语言的性质分为编译器和解释器,其用途就是将高级语言翻译为机器可以理解的语言。

 

6. 面向过程语言的产生使得结构化程序设计成为软件开发最基本的方法,程序的流程控制是分析程序必不可少要素之一,许多技术创新为后来的软件开发技术发展铺垫 了一条宽阔的道路,如模块化设计思想、结构化设计、信息隐藏,并成为软件工程的早期发展,为面向对象语言的产生提供了宝贵的技术来源。

 

7. 面向过程语言难以开发出可复用性、可扩展性、易于维护的软件,面向对象语言克服了面向过程语言的缺点,将面向对象技术都融合到语言中,在语言一级支持不同层次的模块化设计,更好的实现了数据抽象和信息隐藏,继承实现了软件复用,多态便于动态重构,

 

8. 面向对象语言中的对象技术也存在与生俱来的缺陷,因此提出了面向方面的编程语言,将软件关注点模块化,弥补了面向对象编程的不足,提高了程序模块的内聚度,更利于软件的维护和复用。

 

9. 每一次软件技术的飞跃发展都与新型程序设计语言的出现分不开,新的软件技术构建了一个新的环境,新的环境对软件技术又提出了更高的要求。

 

10. 现在越来越多的应用甚至要求系统能够在运行中修正和改变,所做出的改变都是开发人员和用户难以预测的,需要软件本身具备这种处理能力,能够支持运行时的动 态重构。以C++、Java、C#为代表的典型的高级语言虽然在一定程度上支持运行时动态性,比如虚函数实现的多态性,可以在运行时确定调用的成员函数是 父类还是子类的,以及RTTI具有的在运行时识别、加载和管理类的能力,但是在运行时并不能改变类或变量的类型,引用变量前必须声明变量的类型,它们都属 于静态语言,在解决某些问题受到了极大的限制,很多技术难以实现,尤其是实现运行时动态重构。

 

11. 以Python、Perl、Tcl、Ruby为代表的动态语言(又称脚本语言)越来越受到开发者的青睐,使用动态语言群体、社区不断壮大,许多开发团队不 再单纯使用一种语言编程开发软件,而是混合式编程,动态语言作为胶水语言专为应用程序而设计,在今后的混合式应用中变的越来越重要,甚至有人认为是“21 世纪更高级的编程语言”。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics