php发展

首页 » 常识 » 诊断 » 重新认识编程语言
TUhjnbcbe - 2022/9/12 13:28:00
白癜风治疗的医院 https://yyk.39.net/bj/zonghe/89ac7.html

前言

经过多年的学习和实践,我对学习IT技术有了一个感悟,就是如果想较全面的的了解一门新的技术,最好能从两个角度去学习,一是时间角度,二是分类角度。时间角度是考察它的发展历史,了解它的传承,从而了解新的技术为什么要代替旧的技术,其中是什么需求和问题在驱动它,也就明白了这个新的技术或产品为什么产生。分类角度指的是在同一时期,同一类技术也会有许多的分支,也会出现不同的产品和工具,那么它们各有什么特征和优劣,各自最适合于什么应用场景。而我认为明白这个技术为什么产生这技术背后的原因,可能比学会这门技术本身更加重要。因为只有这样,知道在解决实际问题时,该选择哪种产品与工具,不应该选择另一些,只有这样你才能把这门技术的效用发挥到极致。也只有做到这一点,我们才能成为真正的专家。我想这也是普通程序员和架构师的区别吧。

言归正传,今天我们说要重新认识编程语言。也许有的同学觉得没什么必要,他可能学习过编程,但可能只是学过c语言、java语言或者是别的什么语言。特别是不是科班出身的程序员,这样其实很片面,未必真的全面了解了编程语言,也就成不了专家,成不了高手。

编程语言的发展简史

简单的说编程语言发展可以分为三个大阶段。第一代是机器语言,第二代是汇编语言,第三代统称为高级语言。

机器语言就是CPU的指令集,这是唯一的计算机可以读懂的语言。可惜的是它都是一些二进制的表示,如这样的字串,这样的语言写的程序不仅不好记,也很难看懂。

所以后来为了解决这个问题,就发明了汇编语言,把这些二进制的机器语言指令一一对应的用一种人类好理解也好记的英文缩写来代表,这样大家在编写程序时记住指令就容易许多,也增强了程序的可读性。但是我们知道计算机还是只能听懂机器语言,所以要用一种叫做“汇编器”的工具程序把汇编程翻译成机器语言,才能让CPU去执行。

随着软件需求的增加,程序的逻辑越来越复杂,汇编程序的编程效率就成了瓶颈。一方面汇编译语言中的指令是与计算机硬件相关的,也就是说不同的CPU有不同的指令(如X86、MIPS、ARM等),互相不通用。汇编程序不具备可移值性,换一台机器后,同样的程序就可能需要重新编写一遍,另一方面汇编译程序的语法很原始,需要程序员对计算机硬件的原理和结构非常清楚,即使是最简单的给变量赋值的动作,也需要操作寄存器、内存地址等。

为了解决汇编程序生产率低下的问题,高级语言应运而生,高级语言并非是一种语言,而是一类语言。高级语言是更加接近人类语言的编程语言,有了变量、常量的概念、有了算术运算、逻辑运算和关系运算等运算符、并且把程序逻辑归结为顺序执行、分支判断、循环迭代三种基本结构,并且创建了函数的概念,甚至面向对象的概念等。这一切都是让编程语言变得更加抽象、与机器无关,更容易让人理解。由于上述原因,高级语言就具有很好的移植性,因为它的语言是抽象的,是和具体的硬件无关的。但是最终执行的还是机器语言,所以人们就发明了“编译器”来对付它,编译器会将它编译成汇编语言,接着用汇编器再转换成机器语言。就可以在cpu里执行了。

以上就是计算机编程语言的简单的发展历史。高级语言的出现,大大提高了编程的生产率。直接导致了软件业的发展。我们的应用软件也极大的丰富起来。基本上只要懂得应用领域的业务逻辑,结合高级语言,人们不需要对计算机的结构和原理的细节了解,就可以编写出很复杂,且功能强大的应用程序来。由于它的应用领域的侧重点不同,也为了提高其编程的效率,人们发明了许多不同的高级语言,也产生了许多的编程思想(含分析与设计的方法学)。

计算机高级编程语言分类

计算机编程语言有许多分类方式。以下按不同的方式对高级语言进行分类。

按编程范式划分:

现存的许多高级语言都可以基于“如何进行程序设计”加以分类,从而归于某种语言族,这也被称为编程范式。大的语言分类为:说明式和命令式。其中说明式语言从问题的本身出发,

1
查看完整版本: 重新认识编程语言