我们知道常见的编译型语言(如: C语言)常见的解释型语言(如Java、python)那么解释型语言和编译型语言的区别是什么呢?
区别1.安装软件时可见 的区别
对于编译型语言(比如C语言)我们只需要安装一个编译器(如VS),但是对于解释型语言,我们不仅需要安装一个特定的编译器(如Java的eclipse)还要安装特定的安装环境
区别2.原理上的区别
编译型语言:编译型语言是指使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码,一次性“翻译”成可被该平台硬件执行的机器语言(包括机器指令和操作数),并包装成该平台所能识别的可执行程序的格式,这个转换过程称为编译(Compile)。编译生成的可执行程序可以脱离开发环境,在特定的平台上独立运行。
解释型语言:解释型语言是指使用专门的解释器,将源程序逐行解释成特定平台的机器代码并立即执行的语言。
它们的原理如下图所示:
区别三:性能上的区别(优缺点)
编译型语言:编译型语言是一次性地编译成机器码,所以可以脱离开发环境独立运行,而且通常运行效率较高;
比如C语言程序的执行过程,要先将后缀为.c的源文件通过编译、链接为后缀为.exe的可执行文件,才能运行。
解释型语言:每次执行解释型语言的程序都需要进行一次编译,因此解释型语言的程序运行效率通常较低,而且不能脱离解释器独立运行。但解释型语言有一个优势:跨平台比较容易,只需提供特定平台的解释器即可,每个特定平台上的解释器负责将源程序解释成特定平台的机器指令即可。
比如Java,我们在运行时会生成一个.class的字节码文件,然后再转化为特定平台的机器码