从0和1到编程语言

什么是编程语言?

举一个例子:

如果我们不会英语,和一个不会中文的老外交流,怎么办?找个翻译。

电脑只懂0和1组成的机器语言。 用0和1告诉计算机做事很累;人类语言易了解,学习快,效率高。

如果定义一套规范语法,说明如何将人类语言转换成机器语言。这样就可以使用人类语言来告诉计算机做事,这就是编程语言。
将编程语言翻译成机器语言,即0和1, ——这个过程叫编译。

编程语言有很多种。前面了解到的汇编语言,Python,C/C++语言,Java、C#等等。

机器语言 —— 用0和1描述指令
汇编语言——实质和机器语言相同,只是指令采用英文缩写更容易识别和记忆
高级语言——和汇编相比,将多个相关的机器指令合并成为一条指令,去掉了具体的操作。Python、C/C++语言,Java、C#、php等都是高级语言。

  

java一般做企业开发,C/C++  主要用来系统开发,php主要用来web开发。

 

 

解释型语言和编译型语言

计算机本身不能识别高级语言,当我们运行一个程序的时候,需要一个“翻译” 来把 高级语言转换成计算机能读懂的语言。 “翻译”过程分两种:

1.  编译

编译型语言在执行程序前,首先会通过编译器执行一个编译的过程,把程序编译成机器语言。 之后,程序再次运行的时候,就不要“翻译”了,而是可以直接执行。比如C语言。 编译型语言的优点在于在运行程序的时候不用解释,可直接利用已经翻译过的文件。

 

2. 解释

解释型语言就没有编译的过程,而是在程序运行的时候,通过解释器逐行解释代码,然后运行。比如python。

 

java等基于虚拟机的语言兴起之后,编程语言又不能单纯的在划分为编译型语言或解释型语言。 java是首先通过编译器将代码编译成字节码文件(为了跨平台),然后在JVM执行java字节码,将其解释成机器语言。 所以我们说java是一种半编译半解释的语言。
C#,在第一次执行的时候,将代码编译成IL中间码文件,然后由JIT编译器编译成本地的机器码执行。 相当于编译了两次。

 

posted @ 2018-02-06 23:09  小老弟  阅读(852)  评论(0编辑  收藏  举报