编译程序(compiler)和口译译员(interpreter)的区别

编译器和解释器都翻译高级语言程序,不同之处在于编译器将源代码编译为可执行的机器代码,而解释器解释每个指令并执行它,而不产生任何机器/目标代码。编译器的工作是一次性的,一旦程序被编译;它可以被保存以备以后执行,而每次程序运行时解释器都必须解释。在编译器的情况下生成目标代码,而在解释器中不生成目标代码;它只生成中间代码。编译器基本上处理程序,但解释器按指令处理程序。在编译器中,程序的执行速度很快,而在...

主要差异

编译器和解释器都翻译高级语言程序,不同之处在于编译器将源代码编译为可执行的机器代码,而解释器解释每个指令并执行它,而不产生任何机器/目标代码。编译器的工作是一次性的,一旦程序被编译;它可以被保存以备以后执行,而每次程序运行时解释器都必须解释。在编译器的情况下生成目标代码,而在解释器中不生成目标代码;它只生成中间代码。编译器基本上处理程序,但解释器按指令处理程序。在编译器中,程序的执行速度很快,而在解释器中则较慢,因为逐条语句的解释和执行非常耗时。在编译器中,调试过程比在解释器中调试要困难得多。编译器在运行时不需要源代码,但如果是解释器,则需要完整的源代码文件来执行程序。编译器需要更多的内存,因为生成的机器代码相当大,但是对于解释器来说,不需要额外的内存。在编译器中,程序中的错误在分析完完整的源代码后显示出来,但在解释器中,每解释一行就显示错误。对于编译器,编译后的代码由计算机硬件执行,而在解释器中,中间代码由另一个程序处理。在编程场景中,编译器检查程序的语法,但解释器验证程序的关键字。在编译器中有一个代码优化的范围,解释器允许在运行时修改代码。这两种方法都是程序员经常使用的,它们都有自己的规范和优点。

比较图

目标翻译编译程序
输入解释器以单个指令作为输入。编译器将整个程序作为输入。
目标代码解释器中不生成中间目标代码。中间目标代码是在编译器中生成的
控制语句在解释器中条件控制语句执行缓慢。条件控制语句在编译器中执行迅速
转换高级程序每次都转换为低级程序。程序不需要每次都在编译器中编译。

编译器定义

编译器是一种专门的程序,它将用某种高级语言编写的源代码处理成计算机可理解的机器代码。这个机器代码实际上是用二进制语言编写的,处理器可以理解并执行它。为了编写源代码,程序员使用C语言、C++语言或Pascal语言编写程序,使用一些编程编辑器。然后使用适合编写源代码的语言的编译器执行该程序。编译器的输入是一个完整的程序;它首先分析它,然后处理它。它对作为输入的源代码执行大量分析,包括词法和语法分析。在完成这两个步骤之后,编译器的最终任务是生成机器代码。此编译的输出是目标代码,并且是可执行的。程序只编译一次,不需要每次程序运行时都编译。

口译员的定义

解释器是对用某种高级语言编写的程序源代码执行逐条语句(逐行)翻译的程序。解释器,当给定一个程序时,它接受它的一行,解释它,然后执行它。解释器在解释源代码之后生成一个中间代码,然后执行它。没有编译阶段,也没有生成机器代码。这就是解释器如何逐行翻译和运行整个程序。当需要逐条指令立即执行时,它是首选。它们非常有用,尤其是在代码测试完成后。每次,当一个程序要运行时,解释器都以同样的方式解释它。

一言以蔽之

  1. 编译器处理整个程序;解释器逐行解释代码。
  2. 编译器生成二进制机器代码;解释器生成中间代码。
  3. 编译器的机器码在编译后可以保存和重用,解释器每次都要解释源代码。
  4. 编译器检查代码语法的有效性;解释程序检查关键字。
  5. 在编译器中,程序执行速度快;在解释器中,程序执行速度慢。
  6. 在编译器中调试很复杂;在解释器中调试很容易。
  7. 编译器在检查完整的源代码后显示错误;解释器按指定的顺序以代码形式显示每个指令的错误。
  8. 编译器的机器码由硬件进一步处理,解释器的中间码由另一个专门的程序处理。
  9. 编译器在执行时不需要源代码文件;解释器在运行时执行时需要源代码文件。
  10. 在编译器中,程序的执行是在编译阶段之后完成的,解释器直接执行程序而不进行任何编译。
  11. 编译器使用更多的内存;解释器需要更少的内存。

结论

计算机体系结构和理解与之相关的术语可能是一个麻烦的任务,上面这两个术语是相似的,它们之间有着各种不同,但似乎总是彼此相似。因此,本文试图解释它们之间的差异,以帮助人们建立一个清晰的认识。

  • 发表于 2020-05-19 00:18
  • 阅读 ( 181 )
  • 分类:IT

你可能感兴趣的文章

口译译员(interpreter)和翻译(translator)的区别

...和翻译的责任是平等的。   汇编程序与解释器的区别 编译程序与解释器的区别 img.centered,.aligncenter{display:block;margin:0 auto 24px}.gallery-caption,.wp-caption-text{font-size:14px;font-size:1.4rem;font-weight:600;margin:0;text-align:center}.entry-content p{mar...

  • 发布于 2020-11-04 15:08
  • 阅读 ( 511 )

翻译(translate)和解释(interpret)的区别

...本的技能水平来有效地处理任务。 翻译(translate)和解释(interpret)的区别 •翻译人员必须能够理解外语和自己的语言,以便用一种语言从另一种语言清楚地写出文本或讲话。翻译人员通常把外文翻译成他们的母语。 •口译员必须...

  • 发布于 2020-11-04 19:11
  • 阅读 ( 425 )

翻译(translator)和解说者(interpretor)的区别

译者与口译语言和语言学是一个非常有趣的研究领域。许多工作机会都在等待那些有不同语言的人。其中包括翻译和口译“两个看似相同但仅与语言学相关的工作”。 虽然笔译和口译是有联系的,但不寻常的是由同一个人做的...

  • 发布于 2021-06-23 11:33
  • 阅读 ( 232 )

编译(compiled)和解释语言(interpreted language)的区别

...格式。一个称为编译器的程序进行这种转换。 可用性 –编译程序比解释程序运行得快,但解释程序可以在程序运行时进行修改。这使得解释程序非常适合编写现场表演软件。使用编译过的语言会很好,因为在编译源代码时会发...

  • 发布于 2021-06-26 05:11
  • 阅读 ( 756 )

翻译(translator)和口译译员(interpreter)的区别

主要差异翻译(main difference translator) vs. 口译译员(interpreter) Translation is the conversion of a material from one language to another language without distorting its original meaning and value. There are two basic forms of translation: translation of written material and t...

  • 发布于 2021-06-28 00:16
  • 阅读 ( 647 )

编译器解释器(compiler interpreter)和汇编程序(assembler)的区别

编译-解释器与汇编程序的主要区别在于编译程序一次将整个高级语言程序转换为机器语言,而解释器逐行将高级语言程序转换为机器语言,汇编程序将汇编语言程序转换为机器语言。 计算机程序是计算机执行某项任务的一组指...

  • 发布于 2021-06-30 18:09
  • 阅读 ( 1390 )

翻译(translator)和程序设计语言中的解释器(interpreter in programming language)的区别

...序是常见的翻译器。 什么是程序设计语言中的解释器(an interpreter in programming language)? 解释器是将高级编程语言转换为机器语言的另一种类型的翻译器。它将源代码逐行转换为机器代码。因为它一次只检查一行代码,所以扫描时...

  • 发布于 2021-06-30 18:15
  • 阅读 ( 355 )

解释(interpreted)和编译语言(compiled language)的区别

...译语言,解释器,解释语言,机器代码 什么是解释语言(interpreted language)? 解释语言是一种基于解释器的语言。其中,解释器是能够将高级程序转换为机器可理解的机器代码的软件。解释器直接执行程序,并以顺序的方式将每...

  • 发布于 2021-07-01 22:35
  • 阅读 ( 610 )

解释的(interpretive)和解释性(interpretative)的区别

...释性和解释性的区别是什么?关键区别的比较 关键术语 Interpretative, Interpretive 解释性和解释性——含义、用法和示例 解释性和解释性是两个意思相同的形容词。这两个词的意思是“相关或提供解释”。这些形容词的起源是拉丁...

  • 发布于 2021-07-02 07:50
  • 阅读 ( 259 )

翻译(an interpreter)和翻译(a translator)的区别

...口译技巧(hence, it can be said that both roles require the skills of interpreting)和翻译。在翻译行业中,两个工作之间的一个关键问题(translating. within the industry, one of the s between the jobs of an interpreter)的区别 从技术上讲,一个人既可以是口译员...

  • 发布于 2021-07-12 21:08
  • 阅读 ( 316 )