Компилируемый язык — это язык программирования , исходный код которого обычно компилируется , а не интерпретируется .
Термин неопределенный, поскольку, в принципе, любой язык может быть скомпилирован или интерпретирован, а на практике некоторые языки являются и тем, и другим (в разных средах). [1] В некоторых средах исходный код сначала компилируется (в промежуточную форму; часто байт-код ), а затем интерпретируется.
Программы, скомпилированные в машинный код, как правило, работают быстрее, чем интерпретируемые из-за накладных расходов на трансляцию. Среды с промежуточной формой байт-кода стремятся к промежуточной скорости. Компиляция Just-in-time обеспечивает машинную скорость выполнения с единовременными затратами на время обработки запуска.
Низкоуровневые языки программирования , такие как ассемблер и C , обычно компилируются, особенно когда основной заботой является эффективность, а не кроссплатформенная поддержка. Для таких языков существует больше однозначных соответствий между исходным кодом и полученным машинным кодом , что упрощает программистам контроль использования оборудования.
Можно писать компиляторы даже для общеинтерпретируемых языков . Например, Common Lisp можно скомпилировать в байт-код Java (затем интерпретировать виртуальной машиной Java ), код C (затем скомпилировать в машинный код) или напрямую в машинный код.
Среды, поддерживающие несколько языков вывода компиляции, предоставляют разработчикам возможность выбора скорости выполнения или кроссплатформенной совместимости.