Объяснить про трансляцию и компиляцию

Языки делятся на интерпретируемые и компилируемые. А в чем суть отличия? Команды же все равно переводятся в битовые инструкции? Нужно ли вообще так глубоко копать для веб-разработчика?


Ответы (1 шт):

Автор решения: Alex Krass

В компилируемых языках (С, С++, Go, etc) код предварительно проверяется на ошибки и потом переводится в инструкции процессора и в дальнейшем при запуске им не нужно дополнительное программное обеспечение.

В интерпретируемых языках (JavaScript, Python, Lisp, etc) используется промежуточное ПО, которое читает код прямо из файла и выполняет его, без перевода в инструкции процессора. Без интерпретатора невозможно запустить программу и из-за разбора кода на лету они работают медленнее (тоже относительное понятие, для большинства задач хватает скорости).

Есть языки с промежуточной компиляцией в байт код (Java, C#, CPython, etc), которые выполняются так же с помощью промежуточного ПО, но по скорости могут не уступать компилируемым языкам. В этом случае код компилируется не напрямую в инструкции процессора, а в промежуточный байт-код.

При изучении языка и вообще программирования вы столкнетесь с этими терминами, но копать заранее не имеет особого смысла, разве что для общего развития и представления.

Трансляция - перевод из одного языка в другой язык, немного из другой темы.

→ Ссылка