解释型语言和编译型语言的区别:
1.从运行效果上来看。编译型语言要等全部写完后通过编译器去生成一个类似*.exe的二进制文件,然后双击这个文件才可以看到效果。
而解释型语言并没生成*.exe文件,而是直接生成效果,这就是我之前提到的的那个C语言和MATLAB的例子。
2.运行的时候是否需要编译器的伴随。编译型语言运行的是最终生成的二进制代码,所以不需要编译器伴随。
而解释型语言则一边解释一边运行,所以运行的时候很可能还有部分代码没有解释好,所以需要编译器伴随(解释型语言把该工具叫做解释器)。
有人会问编译器(解释器)在哪里呢?
举个例子,网页的解释器就在浏览器中,所以要看HTML的效果必须用浏览器或者有编译工具在内的其他工具打开,比如:模拟浏览器的工具。
3.执行的速度对比。编译型语言运行的已经是完全的二进制内容,运行起来十分干净利落,所以速度很快。
而解释型语言运行的不一定是完全的二进制内容,因为它是一边解释成二进制一边运行。
所以当它执行看出效果的时,程序后半部分还不一定解释成二进制,它就像一个“三心二意”的男人。所以像那种三心二意的男人说话有时吞吞吐吐的,速度没有前者快,但是CPU的运行速度如果很快,可能看不出来,只是偶尔会看到“有点卡”的效果。
原因就是它一边解释一边运行,你看到效果的后面可能还有一少半的代码没解释成二进制,所以看到的效果会是残缺的。这就是为什么有时候查看网页,先是出现一堆没有布局的文字,然后才出现那种布局好的效果。
4.可移植性对比。编译型语言是运行二进制内容,所以一旦CPU指令系统改变,那么之前的二进制文件可能运行不了。比如,如果到其他硬件平台上运行,就可能出现错误,就需要根据该平台重新编译出新的二进制文件。所以可移植性、平台兼容性比价差。
而解释型语言则没有弄成什么二进制内容,而是在需要的时候才开始编译、运行。所以它自然具有可移植性,即在任何平台都可以马上运行起来。
要注意的是它的解释工具如:浏览器,本身就是编译型语言解释出来的二进制代码,所以浏览器本身不具备可移植性,是需要针对不同的平台弄出对应的浏览器最终二进制文件的,这里可别混淆。
5.升级上对比。编译型语言弄出来的二进制文件若要升级,自然要重新下载一个新的二进制文件。所以重新下载、安装、覆盖是最大的特点。比如微信的升级,就是要重新下载、重新安装、重新覆盖,等个半天而且很耗费CPU资源,体验性就不大好。
而解释型的语言只要重新写好源代码即可,用户想要最新的效果,只要刷新一下即可,所以体验性好。比如:某网站平台升级了,用户只要重新刷新一下。
6.应用领域,编译型语言应用领域通常是那些安装软件,例如桌面上的安装软件。解释型的语言的应用领域通常是互联网、网站等那种刷新了一下就可以看到最新效果的领域。
编译型语言的特点是:
源代码经过编译器转换为目标平台的机器码,这个过程是一次性的。
生成的可执行文件可以在任何安装了该语言的平台上独立运行,无需再次编译。
执行效率相对较高,因为它避免了在运行时重新编译的过程。
需要依赖于特定的编译器和操作系统。
有些编译型语言在执行时需要链接多个目标代码模块,以生成最终的程序。
解释型语言的特点是:
源代码在运行时被解释器逐行翻译成目标平台的机器码,然后执行。
每执行一次就需要翻译一次,因此效率较低。
通常不依赖于特定的编译器或操作系统,因为解释器可以在任何支持该语言的平台上游玩。
跨平台性好,只需提供相应的解释器即可。
简单来说,编译型语言在运行前进行了编译,而解释型语言则在运行时进行解释。编译型语言的程序一旦编译成功,就可以在任何支持的平台上运行,而解释型语言的程序则需要解释器的帮助才能执行。编译型语言的执行效率更高,而解释型语言更易于跨平台移植,尽管这会牺牲一定的执行效率
如还有其他困惑,可在线了解有关信息>>>了解python培训>>>