编译和解释的区别如下:
1、与计算机的交流方式不同
解释程序不产生目标代码,它逐条地取出源程序中的语句,边解释,边执行;解释器把源代码文件边解释成机器语言边交给CPU执行。编译是将源程序翻译成可执行的目标代码,执行可执行程序文件,翻译与执行是分开的。
2、运行环境不同
解释程序可跨平台使用,因为解释器已经做好了对不同平台的交互处理,用户写的源代码不需要再考虑差异性,源代码所有平台都可以直接执行。编译程序跨平台性不好,不同操作系统,调用底层的机器指令不同,需为不同平台生成不同的机器码文件。
3、开发便捷性
解释程序可以随时修改,立刻生效,改完源代码后,直接运行看效果。编译程序每次修改源代码,都要重新编译,生成机器码文件
4、运行速度
解释程序运行效率低,所有的代码均需经过解释器边解释变执行,速度比编译型慢很多。编译程序执行速度快,因为你的程序代码已经翻译成了是计算机可以理解的机器语言。
解释型语言能跨平台
首先,跨平台是指源代码跨平台,而不是解释器跨平台。解释器用来将源代码转换成机器码,它是一个可执行程序,是绝对不能跨平台的。
因此,官方针对不同的平台开发不同的解释器,这些解释器能够遵守同样的语法,识别同样的函数,完成同样的功能,只有这样,同样的代码在不同平台的执行结果才是相同的。
所以,解释型语言之所以能够跨平台,是因为有了解释器这个中间层。在不同的平台下,解释器会将相同的源代码转换成不同的机器码,解释器帮助我们屏蔽了不同平台之间的差异。