首先计算机语言的发展历程可以简单划分为以下几个阶段 :机器语言,汇编语言以及高级语言。
最初的计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础,而这种只有计算机能懂的二进制语言被我们称为机器语言。
由于这种语言是直接对计算机硬件进行 *** 作,所以在特定型号的计算机上面,运算效率也是很高的,机器语言的出 现对于未来的计算机语言发展起到了很好的推动作用,所以机器语言也是第一代计算机语言。
但是计算机发明之初,计算机只能被少部分人使用,人们需要用0、1组成的指令序列交由计算机执行,对于机器语言的使用与普及都是很令人头疼的问题。而且机器语言对于程序的移植能力几乎没有,从而时间成本,人力成本十分昂贵。
因此20世纪50年代初期在机器语言的基础上汇编语言诞生了。汇编语言用一些简洁的英文字母、 符号串来替代一个特定的指令的二进制串,这也提高了语言的记忆性和识别性。对于程序的开发与维护起到了积极作用。.
同时汇编语言保持了机器语言的优点,具有直接和简捷的特点,可有效地访问、控制计算机的各种硬件设备使用了大量的助记符来代替二进制指令,方便我们人去编写代码;虽然对于机器语言来说这已经很创新了。
但由于是直接控制硬件,且简单的任务也需要很多汇编语言语句,因此在进行程序设计时必须面面俱到,需要考虑到一切可能的问题,合理调配和使用各种软、硬件资源。
这样,就不可避免地加重了程序员的负担汇编语言同样也是直接对硬件进行 *** 作,这样依然局限了它的移植性。
在与计算机的不断交流中,人们对计算机程序的移植性需求不断提高,此时急需要一种不依赖于特定型号的计算机的语言,用这种语言编写的程序能在在各种平台都正常运行。
在技术人员不断的研发与创新过程中高级语言应运而生。高级语言并不是特指的某一种具体的语言,而是包括很多编程语言。
面向过程语言设计的代表有:C语言,Fortran等一系列语言,而面向对象语言设计的代表则为:java, c++,Python等, 这些是比汇编还要,迄今为止已经出现了上百种语言,。
高级语言的发展是从最初的结构化语言发展成为面向过程语言设计和面向对象语言设计。
Basic Combined Programming Language(BCPL),是一种早期的高级语言。
1967年由剑桥大学的Matin Richards在同样由剑桥大学开发的CPL语言上改进而来。BCPL最早被用做牛津大学的OS6 *** 作系统上面的开发工具。
后来通过美国贝尔实验室的改进和推广成为了UNIX上的常用开发语言。BCPL有些类似于Fortran,也是典型的面向过程的高级语言。BCPL的语法更加靠近机器本身,适合于开发精巧,高要求的应用程序,同时对编译器的要求也不高。
BCPL也是最早使用库函数封装基本输入输出的语言之一,这使得他跨平台的移植性很好。BCPL的代码用小写字母书写,有别于同时代的BASIC和PASCAL。
BCPL对于字符串的支持很差,这种缺点一直延续到了他的后代中,BCPL的内存管理也很糟糕,不过幸好在他的后代中这个缺点被改掉了。BCPL程序从一个主函数中开始,功能模块可以添加在各个函数中,函数支持嵌套和递归。
BCPL本身并没有被使用太长时间,这是因为他的后代们实在太强大了。
1969年前后由美国贝尔实验室的电脑科学家肯尼斯·蓝·汤普森(Kenneth Lane Thompson)在丹尼斯·里奇(Dennis MacAlistair Ritchie)的支持下设计出B语言, B语言是贝尔实验室开发的一种通用的程序设计语言,用于书写UNIX。
这个名字取自BCPL中的第一个字母。但B语言使用的时间更短,因为三年后的1972年同样是贝尔实验室的丹尼斯·里奇 (Dennis Ritchie) 将B语言进一步改进,并且取了BCPL中的第二个字母将其命名为C语言。而C语言和C++则在日后成为了最流行的高级语言。
C语言具有运算符丰富;数据类型丰富;允许直接访问物理地址,对硬件进行 *** 作;可移植性好等优点。
但C语言在数据的封装性上缺点使得C在数据的安全性上有很大隐患;并且C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。
因此最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发了一款叫C++的语言,它是由C语言扩展升级而产生。
C++能允许调整应用性能以及影响所有计算机性能,虽然C++相对来说学习难度很大,但是如果我们可以流畅使用的话,会远远超过其他的程序员。
而另外两门语言,Java与Python都是近几年里较为热门的语言,但若硬要分出个高下,能也只能是仁者见仁,智者见智;毕竟它们各有各的优势。
1995年美国Oracle创造了Java。
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java没有C/C++那么复杂,因为很多复杂的特性如:显示的指针概念、类存储、 *** 作符重载等都已经从java中移除了。
java程序可独立于特定的硬件基础设施运行,即是可以在任何机器上运行(安装对应的JVM),这样可减少额外的维护成本。
java与C++一样,与人类语言具有相似性、可读性高,语法简单易于维护。
但是由于java程序编译成字节码后需要解释成机器码,在JVM解释的过程中需要额外的抽象动作以及消耗更多的内存。
并且,在垃圾回收的过程中需要消耗额外的CPU时间,这就降低了运行速度和性能.同时Java代码是冗长的,即是有许多单词和许多长而复杂的句子,难以阅读和理解。
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆 于1990 年代初设计,作为一门叫做ABC语言的替代品。
Python库都是免费的,并且有很多库和函数把编程变得相对容易很多。
虽然Python开发速度是快,比如Java100行代码python20行就搞定了。但是作为解释型的语言来说,比编译型语言的速度慢很多。
Python在移动计算方面是弱的,很少有智能机的应用是Python开发的。
python是动态型的语言,需要更多的测试以及错误仅仅是在运行的时候展示的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)