stringtranslate.com

Скомпилированный язык

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

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

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

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

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

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

Языки

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

Инструменты

Смотрите также

Рекомендации

  1. ^ Улла, Асмат. «Особенности и характеристики компилируемых языков». www.sqa.org.uk. _
  2. ^ Хикки, Рич. «Clojure — компилируемый язык», дата обращения 11 сентября 2020 г.

Внешние ссылки