什么是编程语言?

· 什么是编程语言?

  说起编程语言,就必须要说计算机,明白了计算机的运行原理,才能明白什么是编程语言。(为了更容易理解,简化很多细节,例如控制器,加法器等)

  现代大多数计算机(包括我们用的)都是用电信号来记录信息,而现在的计算机只能识别两种状态的的信号,即高电平(高电压,用 1 表示)和低电平(低电压,用 0 表示),计算机用晶体管来储存这种状态,以此记录信息。

如上图中第二个和最后一个晶体管是高电平,其他是低电平(大家要习惯电平这个术语,以后都会这么说,其实就是电压的状态),这样八个晶体管共同储存了  01000001  这样一段信息,转换为十进制为数字 65,如果代表了一个字符,那么根据ASSIIC码转换是 A。

  

  计算机也是机器,CPU 只负责计算,本身不具备智能。你输入一条指令(instruction),它就运行一次,然后停下来,等待下一条指令。它和豆浆机、热水器一样要人来控制进行操作,既然计算机只能识别向上面一样的1、0信号,是不是我们控制它也要用相同的方式?

  

  事实上,还真是这样的。计算机的核心CPU(中央处理器),有一套自己的指令手册,叫做指令集。指令集是这个CPU所能够理解并执行的所有操作的集合,也就是说,CPU只能做指令集里面有的操作,指令控制CPU做出反应。我们使用吹风机的时候,上面会有几个按钮,打开关闭不同的按钮吹风机会执行相应的操作,CPU也一样,当你输入指令时,它会进行相应的操作,这些指令都是二进制的,称为操作码。假设现在设计一块“CPU”,只能执行加减运算,只能对两个固定的数操作,加的指令的操作码为 11111111,减的指令的操作码为 00000000。

当你给他指令为加的指令,它会把A加b存在结果里面,减也同理,这甚至简单到不能称为一个CPU,只是演示指令是怎么工作的。在计算机刚诞生的时候,程序员通过打孔的纸带来向计算机输入数据和指令,有孔是1,没孔是0,这样的的语言叫做机器语言,也就是二进制语言。

  

  对于人类来说,二进制程序是不可读的,根本看不出来机器干了什么。这样的语言操作起来极其不方便,上面的“CPU”只有两个指令,而正常的CPU都是有很多指令的,非常难以理解,容易出错,所以诞生了一种低级语言,也就是汇编语言(对,人类的进步就是因为懒)。汇编语言将繁琐的指令操作,0和1,用字母代替,汇编语言是二进制指令的文本形式,与指令是一一对应的关系。例如 11111111 这样的东西,用 add代替即可,只要还原成二进制,汇编语言就可以被 CPU 直接执行,所以它是最底层的低级语言。汇编语言提高了控制计算机的效率,以及程序的可读性,让人能写出更大的程序同时便于修改。

  

  人类在“懒”上的不断追求,诞生了高级语言。高级语言的语法和结构更类似汉字或者普通英文,且由于远离对硬件的直接操作,使得一般人更容易学习。C/C++,C#,JAVA,Python,R,Go等等语言都是高级语言,高级语言编写的程序叫做源程序,因为这种语言更接近人类的自然语言,所以必须通过翻译来让计算机明白,这一过程叫做编译。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息,这个过程,按照该语言的规则,将语句拆分成一个个指令,再将指令转换为二进制,成为计算机可以识别的程序。

  

  编程语言就是操作计算机的控制器,对编程语言的原理和计算机工作的原理更好的理解有助于学习和使用语言,本文中有很多地方为了便于理解,省略了很多概念,也有一些地方做了口头化表述,只是希望帮助大家理解编程,早日入门编程。

对您有帮助的话请点个赞呗~~(左侧小手手点赞)
本文由博客园A-CAT原创编辑,转载请注明出处,谢谢!(点击右侧小火箭可快速返回顶部)

posted @ 2020-02-12 19:14  A-CAT  阅读(582)  评论(0编辑  收藏  举报