Interpreter(解释器)与complier(编译器)的区别

Interpreter(解释器)与complier(编译器)的区别首先需要说明的是 我们通常写代码用的语言 汇编除外 对于机器来说都是高级语言 high levellanguag 但由于机器并不能直接理解高级语言 所以我们的代码若是想被执行还需要经过中间的翻

大家好,欢迎来到IT知识分享网。

首先需要说明的是,我们通常写代码用的语言(汇编除外)对于机器来说都是高级语言(high-level language),但由于机器并不能直接理解高级语言,所以我们的代码若是想被执行还需要经过中间的翻译步骤,这个翻译要么是“解释”,要么是“编译”,也因此,我们平时写代码的语言主要分为两类:

解释型语言:R,PythonJava

编译型语言:C, C++, Pascal等

 

一. Compiler(编译器)

其实我觉得最能体会解释器与编译器的区别就是在调试/运行代码的时候,

作为计算机专业的学生,大学要学的第一门语言是C,我记得当时我们普遍用Dev-C++ (轻量级易启动易安装),

当时每次写完代码后,可以单独选择 编译(compile) 再选 运行(run),或者 编译且运行,但是无论如何,是需要有这么一个编译的过程的

如果在命令行中用GCC来编译C文件的话,大概对编译过程有更深的体会,

在写好一个hello world的c文件后,需要用gcc来执行:

 $ gcc -Wall -hello.c -o hello 

这个过程中,gcc将原始的hello.c文件编译成机器可以理解的代码并且存为hello文件,之后再执行:

 $ ./hello 

这一步骤将可以被机器理解的hello文件送到内存中由CPU开始执行,之后就可以得到执行结果。

以上是想强调,complier需要先把不可被机器理解的High-level language(例如C或者C++)翻译成可被机器理解的语言(一般是二进制’0‘和’1‘),并存入新的目标文件中(例如上面例子中的hello文件),之后我们真正执行的对象也是hello文件

 

二.Interpreter(解释器)

如果有在Pycharm调试经验的同学大概会发现,一个有bug的文件是可以被调试的,直到遇到bug,报错,自动退出调试过程。

这也对应了Interpreter最明显的特征:一行一行读取源码后,解释,立即执行

相比于编译型语言来说,解释型语言由于不要翻译成目标文件,因此占据空间较少,但由于逐行解释的翻译方式,也因此降低了整体的执行效率。

 

以上。

 

转载于:https://www.cnblogs.com/duan1996/p/9905498.html

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/140183.html

(0)
上一篇 2025-05-28 16:45
下一篇 2025-05-28 17:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信