天天看点

编译语言和解释语言的区别

C是典型的编译语言,为了运行C语言编写的代码,我们需要通过C 编译器来运行。在linux 环境下,我们通常使用gcc 编译程序把C语言编写的代码变成机器代码,从而可以在特定的系统运行。编译性语言写的程序可以简单地使用编译完的文件运行。

使用编译性语言的好处是,1. 相对于解释语言。运行更快。一次编译,处处执行【特定的系统上】。2. 在编译过程中有一些错误会浮现出来,从而保证你在早期修复。

缺点是: windows 编译的程序无法在linux运行。反之亦然。

python 是典型的解释语言,运行它的时候,我们不需要首先编译。只需要简单的使用python sample.py 即可。 虽然不需要编译。但是它需要安装python来运行脚本。 python 解释器把可读代码变成机器能读的一些鬼东西。

通常我们认为解释语言会比编译语言慢。 但还是有很多理由支持解释语言的存在:一段代码可以很轻松地在window,linux,macos运行。你只要保证在这些机器上装了python。另一个好处是,你的代码可读而且很容易修改成你想要的样子。而对于编译语言,你要找到源码,修改,从新编译,发布。

Java语言比较有意思,它首先通过编译器编译成class文件,在Windows平台上运行的时候,通过Windows平台上的Java虚拟机(VM)进行解释。运行在Linux平台上的时候,则通过Linux平台上的Java虚拟机进行解释执行。所以说能跨平台,前提是平台上必须要有相匹配的Java虚拟机。如果没有Java虚拟机,则不能进行跨平台

同理,C Sharp 语言也是这样。

也有一些说法:解释性或编译性可以看作是一种语言的状态。 只是把人写的代码翻译成机器可理解代码的时间不同。