Salut Amigo Asked:2020-12-23 16:09:34 +0000 UTC2020-12-23 16:09:34 +0000 UTC 2020-12-23 16:09:34 +0000 UTC 编译器和解释器的区别 772 编译器和解释器有什么区别?编程语言可以同时具有编译器和解释器吗? компилятор 3 个回答 Voted Best Answer Artem Konovalov 2020-12-23T16:20:46Z2020-12-23T16:20:46Z 要说出区别,让我们找出它是什么: 编译器是执行编译的程序或硬件。 编译是将用高级源语言编写的程序翻译成用接近机器代码(绝对代码、目标模块,有时是汇编语言)的低级语言编写的等效程序。编译器的输入信息(源代码)是用特定领域语言对算法或程序的描述,编译器的输出是用面向机器的语言(目标代码)对算法的等效描述。维基百科 解释器是执行解释的程序(一种翻译器)。 解释 - 逐个运算符(逐行命令,逐行)分析、处理和立即执行源程序或查询(与编译相反,在编译中程序被翻译而不执行)。维基百科 因此,我们可以得出结论,编译器将源代码转换为接近机器代码。另一方面,解释器允许您执行程序的某些表示,即时将其转换为机器代码。 如果我们采用语言java,那么它既有编译器又有解释器。编译器将源代码转换为字节码。而程序执行初期的字节码是由解释器处理的。 编译器是一个单独的程序javac,而解释器内置于jvm. 除了通常的编译器外,jvm还有一个just-in-time编译器。因为 解释比较慢,程序中的热点被编译器编译成机器码jit,从而加快执行速度。 Akina 2020-12-23T16:15:01Z2020-12-23T16:15:01Z 1)区别在于,编译器将算法语言的代码转换为可执行(字节码或本机)代码(在极限-转换为机器码),而解释器独立识别并逐行执行程序代码指令。 2)是的,它可以。即使是古老的涡轮增压/快速基本 - 他们也可以。此外,Borland Turbo BASIC 是“在一个瓶子里”,而 Microsoft Quick Basic 像所有现代的一样使用外部编译器。 UPD:可能,它也可以表述如下:程序执行的解释器必须具有算法语言的程序源代码(以其原始或形式化的形式),而编译创建一个不包含程序的可执行模块算法语言中的文本。还有,如果编译时不加调试信息,是不可能完全还原源码的。 Dmitry Ponyatov 2020-02-05T02:09:01Z2020-02-05T02:09:01Z 解释器执行程序,翻译器包括。编译器转换而不执行
要说出区别,让我们找出它是什么:
因此,我们可以得出结论,编译器将源代码转换为接近机器代码。另一方面,解释器允许您执行程序的某些表示,即时将其转换为机器代码。
如果我们采用语言
java,那么它既有编译器又有解释器。编译器将源代码转换为字节码。而程序执行初期的字节码是由解释器处理的。编译器是一个单独的程序
javac,而解释器内置于jvm. 除了通常的编译器外,jvm还有一个just-in-time编译器。因为 解释比较慢,程序中的热点被编译器编译成机器码jit,从而加快执行速度。1)区别在于,编译器将算法语言的代码转换为可执行(字节码或本机)代码(在极限-转换为机器码),而解释器独立识别并逐行执行程序代码指令。
2)是的,它可以。即使是古老的涡轮增压/快速基本 - 他们也可以。此外,Borland Turbo BASIC 是“在一个瓶子里”,而 Microsoft Quick Basic 像所有现代的一样使用外部编译器。
UPD:可能,它也可以表述如下:程序执行的解释器必须具有算法语言的程序源代码(以其原始或形式化的形式),而编译创建一个不包含程序的可执行模块算法语言中的文本。还有,如果编译时不加调试信息,是不可能完全还原源码的。
解释器执行程序,翻译器包括。编译器转换而不执行