17370845950

编程知识科普--解释性语言和编译型语言的区别和不同

解释性语言和编译型语言的区别和不同
解释性语言 编译型语言
概念 计算机无法直接理解高级语言,只能理解机器语言,因此需要将高级语言转换为机器语言才能运行程序。这种转换有两种方式:编译和解释,区别在于转换的时间点不同。
特征 解释性语言的程序无需编译,省去了一道工序。解释性语言在运行时才进行翻译,例如Java语言有一个专门的解释器可以直接执行Java程序,每个语句在执行时才被翻译。因此,解释性语言每次执行都需要翻译,效率相对较低。
区别 解释性语言的程序运行时,控制权在解释器(如JRE、.NET)而非用户程序。
区别 一些网页脚本、服务器脚本以及辅助开发接口等对速度要求不高、对不同系统兼容性有一定要求的程序通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python、Ruby、Matlab等。
区别 解释型语言如Java,首先通过编译器编译成class文件,然后在Windows平台上通过Java虚拟机(VM)解释执行。如果在Linux平台上运行,则通过Linux上的Java虚拟机解释执行。因此,Java可以跨平台,但前提是平台上有相应的Java虚拟机。如果没有Java虚拟机,则无法实现跨平台。
总结 优点:可移植性好,只要有解释环境,就可以在不同操作系统上运行。在解释执行时可以动态改变变量类型、修改程序并插入调试诊断信息,而将解释器移植到不同系统上,程序无需改动即可运行。
总结 缺点:运行需要解释环境,速度比编译型慢,占用资源较多,代码效率低,修改后即可运行,无需编译过程。此外,解释器本身也占用系统资源,程序严重依赖平台,不能像C++、VB那样直接操作底层。