学了这么久编程,你还分不清编译型语言和解释型语言?他们的区别你全知道吗?

Posted 老朱谈python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学了这么久编程,你还分不清编译型语言和解释型语言?他们的区别你全知道吗?相关的知识,希望对你有一定的参考价值。

计算机不能直接理解任何除机器以外的语言,所以必须把程序员所写的程序语言翻译成机器语言。计算机才能执行程序。将其他语言翻译成机器语言的工具就被成为编译器。编译器翻译的方式有两种:一个是编译,另一种是解释。两种方式之间的区别在于翻译时间点的不同。当编译器以解释的方式运行时,也称之为解释器。


.

一、编译型语言

编译型语言代表有c语言、c++……那么编译型语言是怎么工作的呢?C语言会在自己的开发程序内来编写代码,当程序开发完成之后程序员就把开发完成的源代码统一交给编译器。编译器会对所有源代码进行翻译,将其翻译成机器语言。并把它包装为一个最终可执行文件。当我们需要执行这个文件的时候,就可以直接到Windows里面调用可执行文件就可以把文件交给CPU执行了。执行流程如下图所示:


.

二、解释型语言

Python、javascript就是比较常见的解释型语言,其实解释型语言在开发时与编译型语言并没有太大的区别。程序员依旧是在开发环境内来编写代码,假如我们现在写了三行代码,那么,这三行代码是怎么运行呢?要想运行解释型语言,那我们就要把程序交给解释器。解释器接收到程序之后会按照由上到下的顺序逐一读取代码。注意:解释器是一行一行来解释的。解释器先读取第一行代码,并将其翻译成机器语言,翻译完成之后,就给CPU执行,CPU在读取过程中,解释器又读取第二行代码进行翻译。翻译完成之后,再交给CPU执行。以此类推。执行流程如下图所示:


.

三、编译型语言和解释型语言的区别

通过上面的介绍,我们可以发现编译器语言是统一编译,一次性执行。而解释器语言是一行一行翻译,翻译一行执行一行。那么一起来猜测一下,从执行速度来看,是编译型语言的速度快还是解释型语言的速度快呢?

当然是编译型语言执行速度快,在最终生成的可执行性文件中,就是硬件识别的语言。在执行文件的时候,没有任何翻译的动作,CPU就可以很快的执行。不需要任何记录。因此,编译型语言效率高,执行速度快。适合开发操作系统、数据库等应用。

除了速度外,我们在选择一门语言的时候还需要考虑一个特别重要的因素,就是跨平台。所谓跨平台就是我们开发完成的程序既能在Windows上运行,也可以在Linux上运行。还可以在Mac上运行。也就是说一次编写能在任何平台上运行。那么,从跨平台的角度上,是编译型语言适合一些还是解释型语言更适合呢?

当然是解释型语言。程序编写完成后。如果想用Windows执行它,就可以安装Windows解释器。对于其他系统也是如此。将源代码完成后,就传送给解释器翻译并将其执行。既然在每个操作系统上都安装了解释器,源代码就不需要进行修改了。这就是解释型语言在跨平台上的优势。适合开发网页脚本,服务器脚本等。


.

四、总结

我们开发的程序要想执行,就必须有一个翻译。编译型语言要找到翻译就叫做编译器。解释型语言要找到翻译就叫做解释器。从执行效率上讲,编译型语言的执行效率要比解释型语言的执行效率高。但是从跨平台上讲,解释型语言跨平台语言要比编译型语言跨平台能力强。


 

这是一个纯技术交流和资源共享的群,广告者勿入!!!群号:1049249997

以上是关于学了这么久编程,你还分不清编译型语言和解释型语言?他们的区别你全知道吗?的主要内容,如果未能解决你的问题,请参考以下文章

计算机编程语言的种类

你还分不清谐波失真总谐波失真总谐波失真加噪声吗?

解释型语言VS编译型语言

编程语言的分类

编译型与解释型动态语言与静态语言强类型语言与弱类型语言的区别

编程语言类型