原文再续,书接上一回,上一文章我们说到,由于晶体管计算机具有体积小、重量轻、发热少、耗电省、速度快、寿命长、价格低、功能强的特点,所以晶体管计算机迅速替代了电子管计算机,并且让计算机快速普及开来。
而编程语言经历了机器语言到汇编语言的更新之后,人们发现了限制程序推广的关键因素——程序的可移植性。需要设计一个能够不依赖于计算机硬件,能够在不同机器上运行的程序。
汇编语言其实只是比机器语言更加容易记忆和书写,它和机器语言一样,也是一种面向机器的语言,很难从其代码上理解程序设计意图,设计出来的程序需要继续修改才能够移植到其他平台。
所谓面向机器的语言,就是编程的主体是机器。举个例子,现在我们需要计算一个数,1+2等于几?当然做完一个人,你很快就能算出来是等于3,并且安照正规的计算格式写上。
解:1+2=3
而计算机不一样,我们要让它计算1+2等于几,需要这样操作:
第一步,我们给一个变量a赋值,让它等于1,这个变量有8位有效值,即在内存的记录是1.
第二步,我们给一个变量b赋值,让它等于2,这个变量有8位有效值,即在内存的记录是2.
第三步,我们将变量a和变量b相加,得到的值,赋予变量c,这个变量也是有8位有效值,即在内存的记录是3.
第四步,将变量c显示在屏幕上,然后我们得知,1+2是等于3的。
所以汇编语言就是这样的一种面向机器的语言,它在计算机中运行的效率是十分高效的,但是汇编语言实在太过于难懂,而且需要花很长的时间才能编一个程序,而且在不同计算机中移植时还需要进行修改。
需要那时候的科学家设计一个能够不依赖于计算机硬件,能够在不同机器上运行的程序。这样可以免去很多编程的重复过程,提高效率,同时这种语言又要接近于数学语言或人的自然语言。
在计算机还很稀缺的50年代,当时计算机的造价还是不低的,我们当然希望让它一直给我们进行计算,让它给我一直工作,这才能让它的价值发挥出来。
但是,由于汇编语言的特点,这台计算机的工作效率是很高,计算某个东西算起来很快,因为编一个程序需要花很长时间,所以它里面没多少软件,所以除了那几个有限的功能,我们可以使用计算机计算,其他的大部分时间,计算机处在一种空置的状态。
为了更高效地使用计算机,人们设计出了高级编程语言,经过各软件工程师和专家的不懈努力,年,第一个完全意义的高级编程语言FORTRAN问世了,他完全脱离了特定机器的局限性,是第一个通用性的编程语言。
用高级编程语言编写的程序需要经过翻译,翻译成机器所能识别的二进制数才能由计算机去执行。虽然,高级编程语言编写的程序需要一些时间去翻译代码,从而降低了计算机的执行效率,但是实践证明,高级编程语言为工程师带来的便利远远大于降低的执行效率
举个例子,同样我们需要计算一个数,1+2等于几?使用高级编程语言,就是这样写的:
第一步:c=1+2
第二步:显示c的值。
由于高级编程语言更加符合我们的语言逻辑,所以它比汇编语言更加容易学习,而且它是一门面对对象的语言,编写的时候可以忽略硬件的操作,所以使用的时候不需要考虑硬件,这会让编程的门槛降低到了,只要有基本的逻辑思想的人,都能学会高级编程语言。
高级编程语言作为一种通用的编程语言,它的语言结构和计算机本身的硬件以及指令系统无关,它的可阅读性更强,能够方便的表达程序的功能,更好的描述使用的算法。同时,它更容易被初学者所掌握,很容易学习。而且容易学习掌握。但是高级编程语言因为是一种编译语言,所以他的运行速度比汇编程序要低,同时因为高级语言比较冗长,所以代码的执行速度也要慢一些。
高级编程语言,作为用户层面的编程工具,用户并不需要去了解硬件的结构,而是去用逻辑的语言去实现想要的目标,但是因为高级编程语言的架构高于汇编,所以不能编写直接访问硬件资源的系统程序,因此,高级编程语言必须要调用汇编语言编写的程序来访问硬件地址。
由于高级编程语言的普及,使得各种各样的程序出现,这使得计算机的功能大大增强,使得计算机的能够快速地普及,推动第三次科技革命加快……