编译器和转译器之间的主要区别是啥?

Posted

技术标签:

【中文标题】编译器和转译器之间的主要区别是啥?【英文标题】:What is the main difference between a Compiler and a Transpiler?编译器和转译器之间的主要区别是什么? 【发布时间】:2016-11-15 08:58:22 【问题描述】:

CompilerTranspiler 之间的主要区别是什么?请问你能提供一些两者的例子吗?

【问题讨论】:

Compiler Vs Interpreter Vs Transpiler的可能重复 【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

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

例子:

"Developer code" -> "Machine code" php -> C Java -> bytecode

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

例子:

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

【讨论】:

【参考方案3】:

转译器

将一种语言的源代码转换为另一种语言的源代码的软件。例如,CoffeeScript、Caffeine、Kaffeine 和超过两打其他语言被转译成 JavaScript。

在哪里 编译器 通常会生成一个直接可用的工件(某种可执行的二进制文件)。示例:C(产生二进制)、C#(产生字节码)。

【讨论】:

以上是关于编译器和转译器之间的主要区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

预处理器和转译器有啥区别?

Windows 上的 C 编译器之间的实际区别是啥?

Swift 到 JavaScript 转译器 - 可能吗?

jdk和Eclipse是啥关系啊

C语言中编译 生成 调试 测试 运行各是啥意思有啥区别

解释器和编译器,编译型原理和解释型原理