编译器和转译器的主要区别是什么?
What is the main difference between a Compiler and a Transpiler?
Compiler
和 Transpiler
之间的主要区别是什么?请您提供两者的一些例子吗?
它们本质上是相同的:获取源代码并将其转换为其他代码。
不同之处在于编译器通常会生成可直接使用的工件(某种可执行二进制文件)。示例:C(生成二进制),C#(生成字节码)。
而转译器会生成另一种形式的源代码(例如,使用另一种语言),它不能直接运行,需要 compiled/interpreted。示例:CoffeeScript 转译器,生成 javascript。 蛋白石(将ruby转换为javascript)
编译器 - 将代码编译成较低级别的代码。
示例:
"Developer code"
-> "Machine code"
PHP
-> C
Java
-> bytecode
Transpiler - 将代码编译到 code/abstraction.
的同一级别
示例:
"Developer code"
-> "Another developer code or version"
JavaScript ES2015+
-> JavaScript ES5
转译器
将一种语言的源代码转换成另一种语言的源代码的软件。例如,CoffeeScript、Caffeine、Kaffeine 和其他两打以上的语言被转换成 JavaScript.
在哪里
编译器 通常会生成可直接使用的工件(某种可执行二进制文件)。示例:C(生成二进制)、C#(生成字节码)。
Compiler
和 Transpiler
之间的主要区别是什么?请您提供两者的一些例子吗?
它们本质上是相同的:获取源代码并将其转换为其他代码。
不同之处在于编译器通常会生成可直接使用的工件(某种可执行二进制文件)。示例:C(生成二进制),C#(生成字节码)。
而转译器会生成另一种形式的源代码(例如,使用另一种语言),它不能直接运行,需要 compiled/interpreted。示例:CoffeeScript 转译器,生成 javascript。 蛋白石(将ruby转换为javascript)
编译器 - 将代码编译成较低级别的代码。
示例:
"Developer code"
->"Machine code"
PHP
->C
Java
->bytecode
Transpiler - 将代码编译到 code/abstraction.
的同一级别示例:
"Developer code"
->"Another developer code or version"
JavaScript ES2015+
->JavaScript ES5
转译器
将一种语言的源代码转换成另一种语言的源代码的软件。例如,CoffeeScript、Caffeine、Kaffeine 和其他两打以上的语言被转换成 JavaScript.
在哪里 编译器 通常会生成可直接使用的工件(某种可执行二进制文件)。示例:C(生成二进制)、C#(生成字节码)。