关于编译型语言和解释型语言,以及可移植性
编译器、解释器
1.编译器:将源程序编译成机器语言,保存成二进制文件,运行速度快
2.解释器:执程序时一条条解释成机器语言,运行速度慢
编译型语言、解释型语言
1.编译型语言:不能独立运行,使用了库函数,需要链接,最后输出可执行代码 (C、C++)
缺点:编译成特定平台的机器码,无法将可执行文件移植到其它平台,可以移植也需要采用该平台的编译器重新编译,移植性差
2.解释型语言:生成中间代码,同于机器码,再解释成可执行的机器码 (java、python)
优点:跨平台容易,只需要特定平台的解释器
缺点:牺牲了程序的执行效率,才方便移植
C与python
为什么说C的移植性差?因为不同平台编译器对于C的编译不同,移植性差(举个例子,一些平台对于int编译结果是两个字节,一些平台对于int编译结果是四个字节)
为什么python是基于C,但是移植性却好?
python是解释型语言,实际上它是在C写的一个统一指令集的虚拟机上运行,指令集的统一,使得移植性好