Приведенное вами определение слишком общее, чтобы новичок мог его полностью понять, поэтому позвольте мне просто упростить его до того, что мы видим на практике.
Компилятор: это общий термин для описания программы, которая берет исходный код, написанный на одном языке, и создает (или несколько) выходных файлов на другом языке. На практике мы в основном используем этот термин для описания компилятора, такого как gcc, который принимает код C в качестве входных данных и создает двоичный исполняемый файл (машинный код) в качестве выходных данных.
Транспилеры также известны как компиляторы исходного кода. Таким образом, по сути, они представляют собой подмножество компиляторов, которые принимают файл исходного кода и конвертируют его в другой файл исходного кода на каком-то другом языке или в другую версию того же языка. Вывод обычно понятен человеку. Этот вывод по-прежнему должен пройти через компилятор или интерпретатор, чтобы его можно было запустить на машине.
Некоторые примеры транспилеров:
- Emscripten : преобразование C / C ++ в JavaScript
- Babel : переносит код ES6 + в ES5 (ES6 и ES5 - разные версии или поколения языка JavaScript)
Теперь, что они подразумевают под «аналогичным уровнем абстракции»: как я уже сказал, он компилирует / переносит в исходный файл, можно утверждать, что язык ассемблера также является исходным файлом и, следовательно, gcc также является транспилятором. Итак, этот аргумент - то, что пустота подобного уровня абстракции.
Идея разделения языков на нижний, средний и высший уровень основана на уровне абстракции, которую они обеспечивают от фактической работы машины / архитектуры.
Языки более низкого уровня, такие как ассемблер, очень близки к архитектуре процессора, т.е. имеют разные инструкции для разных процессоров. В то время как C / C ++ / Java / JavaScript, абстрагируйте все это, предоставляя больше абстракции.
Итак, транспилятор компилируется в язык, который ближе к языку, с которого вы начали в терминах этой абстракции (или ближе к уровню этого языка в языковой лестнице нижнего-среднего-высшего уровня).
Надеюсь это поможет!