RBT*_*RBT 41 language-agnostic compiler-construction interpreter terminology transpiler
在我参加的reactJs会话期间,演示者使用术语转换器进行一些代码转换/移植.在计算机系统/机器上将语言代码转换为可运行的形式时,我总是使用和听到编译器和解释器这两个术语.对我来说,Transpiler对我来说是全新的.有人可以帮助我理解一个Transpiler与编译器或解释器的不同之处以及为什么它真的需要它?
Jim*_*m M 27
编译器 - 将代码编译为较低级别的代码.
例:
"Developer code"
- > "Machine code"
PHP
- > C
Java
- > bytecode
Transpiler - 将代码编译为相同级别的代码/抽象.
例:
"Developer code"
- > "Another developer code or version"
JavaScript ES2015+
- > JavaScript ES5
解释器 - 解释代码,而不是与上述两个相同的类/联盟/上下文.
例: php.exe
index.php
" - >"结果html
或者就像纯粹一样index.html
"fum*_*uma 18
当您使用像CoffeeScript,TypeScript(您将其命名)等JS预处理器转换为纯JavaScript时,它通常被称为'transpiling'.但它真的不是JS专属的东西.它适用于所有类型的编程语言.大多数情况下,它只是称为编译.
Transpiling是一个特定的术语,用于获取用一种语言编写的源代码,并转换为另一种具有相似抽象级别的语言 .
根据https://www.stevefenton.co.uk/2012/11/compiling-vs-transpiling/
所以在你的情况下:
另一个例子:
自20世纪80年代以来,我一直在构建这样的工具.
我们称它们为"源程序转换系统 ".
这个任期很好,AFAICT,约45年.这个想法可以追溯到那之前; 请参阅Val Schorre的Meta II编译器编译器,以了解该想法的1963版本.
现在我们有了这个新名词; 几年前我开始看到它.它什么都没有增加,但听起来很神秘而且很酷.这就是牧师建立自己价值的方式; 他们为旧观念创造了新的词汇.