编译器和转译器的主要区别是什么?

31

编译器和转译器有哪些主要区别?能否提供一些编译器和转译器的例子?


3
可能是编译器 VS 解释器 VS 转译器的重复问题。 - xmojmr
3个回答

34

它们本质上是相同的: 获取源代码并将其转换为其他形式。

不同之处在于编译器通常生成一个可直接使用的产物(某种可执行二进制文件)。例如:C(生成二进制文件)、C#(生成字节码)。

而转译器会生成另一种形式的源代码(用另一种语言编写),该代码不能直接运行,需要进行编译/解释。例如:CoffeeScript 转译器,它生成 JavaScript。 Opal(将 Ruby 转换为 JavaScript)。


4

编译器 - 将代码编译为较低级别的代码。

例如:

  • "开发者代码" -> "机器码"
  • PHP -> C
  • Java -> 字节码

转译器 - 将代码编译为同一级别的代码/抽象。

例如:

  • "开发者代码" -> "另一个开发者代码或版本"
  • JavaScript ES2015+ -> JavaScript ES5

-1

转译器

一种将一种语言的源代码转换为另一种语言的软件。例如,CoffeeScript、Caffeine、Kaffeine和其他二十多种语言都被转译成JavaScript。

编译器通常会生成可直接使用的工件(某种可执行二进制文件)不同。例如:C(生成二进制文件)、C#(生成字节码)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接