Термины Transpile и Compile связаны с преобразованием языка программирования из одной формы в другую, но с разницей в уровне абстракции и типе конечного результата. В этой статье мы обсудим обе терминологии более подробно.

Компилятор

Он переводит исходный код с языка более высокого уровня на язык более низкого уровня. Компиляторы преобразуют код с одного языка на другой, но оба языка сильно различаются по уровню абстракции.

Пример:

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

Транспилятор

Это тип компилятора, который транслирует исходные коды на одном уровне абстракции. Означает, что перевод выполняется с того же уровня кода на другой тот же уровень кода (например, с языка высокого уровня на язык высокого уровня и т. д.).

Пример:

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

Также известны как компиляторы исходного кода. Прекрасным примером этого являются версии JavaScript ES5 и ES6+. ES5 — это более старая версия JavaScript, которая поддерживается почти всеми браузерами, в то время как некоторые функции версии JavaScript ES6+ поддерживаются не всеми браузерами.

Babel — это транспилятор, который при необходимости преобразует более новую версию JavaScript в любую совместимую версию JavaScript. Раньше при создании веб-сайтов нам приходилось заботиться о проблемах совместимости, но теперь с современными технологиями, такими как ReactJS, нам не нужно думать о проблемах совместимости, поскольку в них встроен Babel.