解释和编译的区别:与计算机的交流方式不同、运行环境不同、开发便捷性、运行速度。
1、与计算机的交流方式不同
解释程序不产生目标代码,它逐条地取出源程序中的语句,边解释,边执行;解释器把源代码文件边解释成机器语言边交给CPU执行。
编译是将源程序翻译成可执行的目标代码,执行可执行程序文件,翻译与执行是分开的。
2、运行环境不同
解释程序可跨平台使用,因为解释器已经做好了对不同平台的交互处理,用户写的源代码不需要再考虑差异性,源代码所有平台都可以直接执行。
编译程序跨平台性不好,不同操作系统,调用底层的机器指令不同,需为不同平台生成不同的机器码文件。
3、开发便捷性
解释程序可以随时修改,立刻生效,改完源代码后,直接运行看效果。
编译程序每次修改源代码,都要重新编译,生成机器码文件。
4、运行速度
解释程序运行效率低,所有的代码均需经过解释器边解释变执行,速度比编译型慢很多。
编译程序执行速度快,因为你的程序代码已经翻译成了是计算机可以理解的机器语言。
编译程序的特点:
1、一次性编译
编译程序通常需要一次编译即可,不像解释程序那样需要逐行解释执行。
2、效率高
由于编译程序将源代码翻译成目标代码,因此运行速度快,效率高。
3、错误检查
编译程序会对源代码进行严格的语法和语义检查,可以发现许多潜在的错误。
4、优化
编译程序通常会进行代码优化,以提高程序的运行效率。
5、可移植性
编译程序生成的目标代码可以在不同的计算机或操作系统上运行,具有较好的可移植性。
6、独立于源语言
编译程序一般不依赖于源语言的特定语法和语义,可以适用于多种高级语言。