Транспайлер

Транспайлер — тип компилятора, который использует исходный код программы, написанной на одном языке программирования, в качестве исходных данных и производит эквивалентный исходный код на другом языке программирования. Транспайлер переводит между языками программирования, которые работают примерно на одном и том же уровне абстракции, в то время как традиционный компилятор переводит с более высокого уровня языка программирования на язык более низкого уровня. Например, транспайлер может выполнить перевод программы с Паскаля на Си. Компайлер, основанный на автоматическом распараллеливании, нередко принимает в качестве входных данных программу на языке высокого уровня, а затем преобразует её код и комментирует его при помощи параллельных кодовых аннотаций (например, модель openmp) или языковых конструкций (например, forall для Фортрана).Другая цель транспайлера — это перевод старого кода, чтобы использовать следующую версию того же языка программирования или API, нарушая тем самым обратную совместимость. Транспайлер в этом случае будет выполнять автоматический рефакторинг кода, что оказывается полезным, когда программы, подлежащие рефакторингу, находятся вне контроля исходного исполнителя (например, преобразование программ из Python 2 на Python 3 или преобразование программ из старого API в новый API) или когда из-за размера программы её ручная переработка нецелесообразна или отнимает слишком много времени.

Транспайлеры могут либо сохранить переведенный код как можно ближе к исходному коду, чтобы максимально упростить процесс разработки и отладки исходного кода, либо могут изменить структуру кода так, что переведенный код не будет похож на исходный. Существуют также утилиты отладки, которые позволяют сопоставить транскомпилированный исходный код с оригинальным исходным кодом; например, стандарт SourceMap для JavaScript имеет возможность сопоставления кода JavaScript, выполняемого в браузере, с первоисточником на языке, транскомпилированном в JavaScript.Примеры транскомпилированных языков включают Closure Compiler, Coccinelle, coffeescript, Dart, Haxe, TypeScript и Emscripten.

Источник: Википедия

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я