2016-11-15 129 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
相關問題