2016-11-15 127 views

回答

12

它们本质上是一样的:获取源代码并将其转换为其他东西。

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

而转译器产生另一种形式的源代码(例如,在另一种语言中),它不能直接运行,需要编译/解释。示例:CoffeeScript转译器,它生成javascript。 Opal(将ruby转换为javascript)

0

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

实施例:

  • "Developer code" - >"Machine code"
  • PHP - >C
  • Java - >bytecode

Transpiler - 编译代码到代码/抽象相同的水平。

实施例:

  • "Developer code" - >"Another developer code or version"
  • JavaScript ES2015+ - >JavaScript ES5
相关问题