@Nikita1244
Anonymous

Почему все называют TypeScript компилируемым языком программирования?

Возник такой вопрос.
Все заявляют, что TypeScript - компилируемый язык программирования.
Но стоп, компиляция - это процесс перевода "человеческого" кода в машинный код.
TypeScript делает просто обычную транслитерацию в JavaScript, а JavaScript - интерпретируемый язык программирования.
Так почему его называют компилируемым, если это по сути, не так?
  • Вопрос задан
  • 635 просмотров
Решения вопроса 3
vabka
@vabka
Токсичный шарпист
1. Если душнить, то никто не называет TypeScript компилируемым языком.
Вот например что написано на официальном сайте на самом верху:

TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.


2. У typescript есть компилятор tsc - его называют компилятором, потому что он по определению им является.

Но стоп, компиляция - это процесс перевода "человеческого" кода в машинный код.

Нет. Даже если брать определение из википедии, то будет:

In computing, a compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language).

Никакой речи о "машинном коде" нет, как видишь)

А если совсем душнить, то языки не делятся на компилируемые и интерпретируемые - это детали реализации.
В теории для любого языка можно написать компилятор/транслятор или интерпретатор (и так действительно делают)

При этом ещё существует какая-то путанница в терминологии:
1. В русскоязычной литературе действительно принято компилятором называть такой транслятор, который транслирует код с языка высокого уровня в машинный или ассемблер.
(интересно, в каком тогда месте у таких авторов лежат компиляторы, которые компилируют в какой-нибудь промежуточный язык)
Получается, что компиляторы - это подмножество трансляторов.

2. В англоязычном интернете transpiler наоборот являются подмножеством compiler.
Compiler - такая программа, которая преобразует код с одного языка на другой, причём из одного файла может получиться N файлов.
А tanspiler - это такая программа, которая берёт исходный код на одном языке, и преобразует его в исходный код на другом языке, причём 1 файл преобразуется ровно в 1 файл.

Получается, что tsc - это транслятор/транспайлер, а причислять их к компиляторам или нет - это дискуссионный вопрос.
Ответ написан
Maksclub
@Maksclub
maksfedorov.ru
В целом, если не упарываться терминами, везде для такого рода поведения как у Typescript указывается слово Compile.
Например, контейнер в Symfony (язык php), чтобы ускорить тяжелую работу по разбору конфигов (всех разных) собирается контейнер один раз (компилируется) и спокойно все называют это дело компиляцией.
https://symfony.com/doc/current/components/depende...

Отдельно отмечу, что в английском языке это не самостоятельное слово для сборки программ, и может использоваться много где, где нужен смысл "собрать". Соответственно все, что собирает почти всегда корректно называть компилятором. Потому компиляция у нас — перевод "собирание вместе"
Ответ написан
Steel_Balls
@Steel_Balls
Нет, это не так.
TypeScript - это транспилируемый язык
https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B0%D...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы