程序设计语言的发展肯展望
程序设计语言是与现代计算机共同诞生、共同发展的,至今已有40余年的历史,早已形成了规模庞大的家族。
进入80年代以后,随着计算机的日益普及和性能的不断改进,程序设计语言也相应得到了迅猛发展。
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
第一代的机器语言,在程序有错需要修改时,十分麻烦,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。
但是,针对特定型号计算机的语言,所以运算效率是所有语言中最高的。
由此,后来又产生了汇编语言,但是需要有编译程序翻译,因为计算机不认识那些符号的,这个程序可以将这些符号翻译成二进制数的机器语言,但是,汇编语言十分依赖机器硬件,移植性不好,但效率还是十分高,它能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。
其次,而后又有了高级语言,它是接近于数学语言或人的自然语言,但是高级语言的发展也经历了从早期语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程,相应得,软件的开发也由最初的个体手工作坊式的封闭式生产,发展为产业化、流水线式的工业化生产。
60年代中后期,软件越来越多,规模越来越大,而软件的生产基本上是人自为战,缺乏科学规范的系统规划与测试、评估标准,其恶果是大批耗费巨资建立起来的软件系统,由于含有错误而无法使用,甚至带来巨大损失,软件给人的感觉是越来越不可靠,以致几乎没有不出错的软件。
这一切,极大地震动了计算机界,史称“软件危机”。
人们认识到:大型程序ude编制不同于写小程序,它应该是一项新的技术,应该像处理工程一样处理软件研制的全过程。
程序的设计应易于保证正确性,也便于验证正确性。
1969年,提出了结构化程序设计方法,1970年,第一个结构化程序设计语言——pascal语言的出现,标志着结构化程序设计时期的开始。
80年代初开始,在软件设计思想上,又产生了一次革命,其成果就是面向对象的程序设计。
在此之前的高级语言,几乎都是面向过程的,程序的执行是流水线似的,在一个模块被执行完成前,人们不能干别的事,也无法动态地改变程序的执行方向。
这和人们日常处理事物的方式是不一致的,对人而言是希望发生一件事就处理一件事,也就是说,不能面向过程,而应时面向具体的应用功能,也就是对象。
其方法就是图案件的集成化,如同硬件的集成电路一样,生产一些通用的、封装紧密的功能模块,称之为软件集成块,它与具体应用无关,但能相互组合,完成具体的应用功能,同时又能重复使用。
对使用者来说,只关心它的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是内部的事,使用者完全不用关心,C++、VB、Delphi就是典型代表。
高级语言的下一个发展目标是面向应用,也就是说:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理,这就是非过程化的程序语言。
在这种语言下,其语法和结构更类似普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程。
高级语言通常按其基本类型、代系、实现方式、应用范围等分类。
高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如目前流行的c,c++,pascal,python,lisp,prolog,FoxPro,Delphi等等,这些语言的语法、命令格式都不相同。
高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。
但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。
所以汇编语言适合编写一些对速度和代码长度要求高的程序和直接控制硬件的程序。
高级语言、汇编语言和机器语言都是用于编写计算机程序的语言。
高级语言程序“看不见”机器的硬件结构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。
为此,一些高级语言提供了与汇编语言之间的调用接口。
用汇编语言
编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。
程序设计语言从机器语言到高级语言的抽象,带来的主要好处是:
1.高级语言接近算法语言,易学、易掌握,一般工程技术人员只要几周时间的培训就可以胜任程序员的工作;
2.高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;
3.高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高;
4.由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量。
就拿我们正在学习的C语言来说吧,一个并不高级也并不很抽象的语言。
在结构程序设计时期,由于软件工程强调抽象,这个时期推出的语言越来越"高级",越来越抽象。
但与此同时,一个并不高级也并不很抽象的语言却脱颖而出,这便是C语言。
C是作为系统程序设计语言于1973年研制出来的。
C的成功得益于它有一个好的机会;那时的高级语言基本都不适合开发系统软件,系统软件基本都是用机器语言或汇编语言编写的,而C的许多类汇编语言特征却使它大获成功。
C语言的表达式比较简洁、具体丰富的运算符,有比较现代的控制结构与数据结构,它不是一个大语言,也不是一个很高级的语言(只能算一个中级语言),它目前的应用范围已不限于系统软件开发,已成为目前最流行的语言之一。
C语言的主要不足在于它并没有完全体出好的程序设计思想。
在使用C时可能会走入歧途。
C由于过于注重开发与运行效率而使其程序的可读性较差。
C语言的主要不足在于它并没有完全体出好的程序设计思想。
在使用C时可能会走入歧途。
C由于过于注重开发与运行效率而使其程序的可读性较差。
对于理工科的大学生而言,掌握一门高级语言及其基本的编程技能是必需的。
大学学习,除了掌握本专业系统的基础知识外,科学精神的培养、思维方法的锻炼、严谨踏实的科研作风养成,以及分析问题、解决问题的能力的训练,都是日后工作的基础。
学习计算机语言,正是一种十分有益的训练方式,而语言本身又是与计算机进行交互的有力的工具。
而且计算机语言的发展是一个不断演化的过程,其根本的推动里就是抽象机制更高的要求,以及对程序设计思想的更好的支持。
具体的说,就是吧机器能够理解的语言提升到也能够很好的模仿热泪思考问题的形式。
计算机语言的演化从最开始的机器语言到汇编语言到各种结构化高级语言,最后到支持面向对象技术的面向对象语言。
计算机语言的发展现状:目前通用的编程语言有两种形式:汇编语言和高级语言。
但是现在比较流行的是JAVA语言,程序员数量也是最多的,有些人认为C语言的发展前途优于JAVA,也许是因为很多编程语言都是以C语言为基础写出来的,基本上都是相同的,所以要吧C语言学学好。
不过,我觉得不同的语言知识表现形式不同而已,其本质其实都是一样的,都是转换成二进制的机器码。
设计思想当然是非常重要了,它是知道你大型大型项目开发的必要因素。
但是JAVA是世界上使用最多的语言,所以现在学习JAVA变得十分流行。
Java语言是简单的。
Java语言的语法与C 语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。
另一方面,Java 丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。
特别地,Java语言不使用指针,并提供了自动的废料收
集,使得程序员不必为内存管理而担忧。
Java语言是一个面向对象的。
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。
总之,Java语言是一个纯的面向对象程序设计语言。
不过学习java不仅仅要对这门语言和相应的框架要有一定的了解,更多的是要对相关的了解,比如对数据库等等,都不只能停留在知道的层面上,那样是不行的。
你要深入深入再深入!学习那种语言,都要有毅力和坚持的态度好学的心理,还要有一个健壮的身体,否则那就不适合做程序员!所以不管编程语言以后将如何发展,我们只需要好好学好我们的专业知识,因为时代是不断改变的,但是基础的东西是不会改变的,要的只是我们思想上的灵活性,人是要学着变通的,计划赶不上变化,何况现在是信息化的时代,很多东西淘汰的也很快,所以我们要紧跟着时代的脚步,好好在学校学习专业知识,还要在实践中累积经验。
程序,本来就是挺让人捉摸不透的,说会,大家都是会的,但是学样东西关键是要学精,这是最重要的,所以我觉得当务之急是认真先学好书本知识,然后在加上今后自己在以后的生活实践中会慢慢找到更好掌握它的方法。
理论是要和实践相结合的,所以我们也不能只局限于书本上固有的知识,还应该常常上网密切关注程序语言的发展。
学好程序设计语言并不是一朝一夕的事情,需要你有足够的耐心,要多看书及时把不懂的弄懂,另外要加强自己的上机实践能力,这一点十分重要。
我觉得学编程最难的是熟练程度的提高,需要记大量的函数,了解他们的类库,模板库等等,不过这些都需要长期的积累才行。
希望自己能在今后学习程序设计语言的时候,都能做到这些,好好学会一门语言,以后再学其他语言的时候就能融会贯通了。