Компилируемый язык программирования

Эта статья была переведена из источника, распространяемого под свободной лицензией, и находится на начальном уровне проработки
Материал из энциклопедии Руниверсалис

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

Чтобы избежать расплывчатости понятия, его следует использовать в узком смысле. Дело в том, что, в принципе, любой язык может быть реализован с помощью компилятора или интерпретатора.[1] Также распространена комбинация обоих решений: компилятор может переводить исходный код в некоторую промежуточную форму (часто называемую p-код или байт-код), которая затем передается интерпретатору, выполняющему ее. Как правило, под компилируемыми языками понимают языки, для которых существует компилятор в машинный код.

Преимущества и недостатки

Программы, скомпилированные в родной код во время компиляции, обычно быстрее, чем программы, переведенные во время выполнения, из-за накладных расходов на процесс перевода. Новые технологии, такие как just-in-time compilation, и общие улучшения в процессе трансляции начинают сокращать этот разрыв. Смешанные решения, использующие байткод, стремятся к промежуточной эффективности.

Низкоуровневые языки программирования обычно компилируются, особенно когда главным является эффективность, а не поддержка кроссплатформенность. Для таких языков существует больше соответствий один-к-одному между программируемым кодом и аппаратными операциями, выполняемыми машинным кодом, что облегчает программистам контроль за использованием центрального процессора (CPU) и memory в тонких деталях.

При определенных усилиях всегда можно написать компиляторы даже для традиционно интерпретируемых языковов. Например, Common Lisp может быть скомпилирован в байткод Java (затем интерпретирован виртуальной машиной Java), код C (затем скомпилирован в родной машинный код) или непосредственно в родной код. Языки программирования, поддерживающие несколько целей компиляции, дают разработчикам больше возможностей для выбора скорости выполнения или кроссплатформенной совместимости или использования.

Компилируемые языки

Некоторые языки, которые принято считать компилируемыми:

Языки компилируемые в байт-код

Языки компилируемые в другой язык программирования (Транспайлер)

Примечания

  1. Ullah, Asmat Features and Characteristics of Compiled Languages (англ.). www.sqa.org.uk.
  2. Hickey, Rich. "Clojure - это компилируемый язык", Retrieved on 11 September 2020.

Ссылки