编译器和Transpiler之间的主要区别是什么?

时间:2016-11-15 08:58:23

标签: compilation transpiler

CompilerTranspiler之间的主要区别是什么?请你提供两个例子吗?

3 个答案:

答案 0 :(得分:20)

它们基本相同:获取源代码并将其转换为其他内容。

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

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

答案 1 :(得分:1)

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

示例:

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

Transpiler - 将代码编译为相同级别的代码/抽象。

示例:

  • "Developer code" - > "Another developer code or version"
  • JavaScript ES2015+ - > JavaScript ES5

答案 2 :(得分:0)

翻译器

将一种语言的源代码转换为另一种语言的源代码的软件。例如,CoffeeScript,Caffeine,Kaffeine和其他两种以上的语言都已转换为JavaScript。

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