解释执行语言和编译执行语言
A. 解释型语言和编译型语言
编译型是使用编译器编译后生成计算机硬件可直接执行的指令,解释型是在运行时才由解释器逐语句去执行。编译型代表:CC++,C#,java,解释型代表:html,javascript。区别有很多。
1、编译型语言的源代码有错误编译不通过,无法生成可执行代码,更无法执行程序;解释型语言只有执行时才会判断是否出错,即使一句出错,也可以继续执行下一句。
2、编译型语言都为强类型,即必须说明数据的类型,如inta;解释型语言多为弱类型,如js中vara,a可以为字符串也可以为整形。
3、编译型语言执行效率上大大优于解释型,主要因为编译器在编译过程中会根据不同平台自动优化目标代码,且特点为1次编译,N次运行,另外强类型的程序安全性高;解释型语言无上述过程,逐语句翻译造成执行效率低下,每次执行都会重复解释一遍,并且安全性低。
4、编译型程序适合对通用性,重复性,高效性有要求的系统,如开发操作系统;相比解释型语言更具灵活性,如开发网站前台页。
B. 编译型语言和解释型语言的区别
执行过程,执行效率,平台依赖性等区别。
1、执行过程:编译型语言在程序执行之前,需要经过一个专门的编译过程。这个编译过程会将源代码转化为机器语言,生成可执行文件。一旦编译完成,机器就可以直接运行这个可执行文件,而不需要再次进行翻译。解释型语言则不同,不需要提前编译。解释器会在程序运行时,逐行读取源代码,并将其转换为机器语言进行执行。这意味着每次执行程序时,都需要进行翻译,没有生成独立的可执行文件。
2、执行效率:由于编译型语言在执行前已经完成了源代码到机器语言的转换,因此其执行速度通常较快,效率较高。编译型语言在运行过程中不需要进行实时的代码翻译,所以其内存占用相对较少。解释型语言由于需要实时翻译源代码,因此其执行速度相对较慢,效率较低。解释型语言在运行时需要占用更多的内存和CPU资源,以支持实时的代码翻译和执行。
3、平台依赖性:编译型语言生成的可执行文件是针对特定平台的,因此其可移植较差。当需要在不同操作系统间切换时,通常需要重新编译源代码以生成对应平台的可执行文件。解释型语言则具有较好的跨平台性。只要目标平台提供了相应的解释器,就可以直接在该平台上运行源代码。这使得解释型语言在跨平台应用方面具有优势。