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

Материал из Циклопедии
Перейти к навигации Перейти к поиску

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

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

Преимущества и недостатки[править]

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

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

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

Компилируемые языки[править]

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

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

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

Источники[править]

Ссылки[править]

 
Используемые
в разработке

Ада A+ APL Atlast Forth AWL Язык ассемблера ActionScript ABAP/4 AutoIt AWK BeanShell Бейсик Си Кобол C++ C# Clarion Clojure ColdFusion Common Lisp D dBase Delphi DuAL Eiffel Erlang Euphoria F# Форт Фортран Gambas Go Groovy HAL/S Haskell IBM PL/S Icon IridiumJava JavaScript Limbo Lua Модула-3 Object Pascal Objective-C OCaml Oz Parser Паскаль Компонентный Паскаль Perl Pixilang PHP PowerBASIC Python ПЛ/1 Пролог Qi Ruby Scala Scheme Seed7 Smalltalk SQL PL/SQL Tcl TouchDesigner Vala Visual Basic (.NET) • X-Robot

Академические

Agda Clean Curry Idris Лого ML Оберон Planning C РЕФАЛ Симула

IEC 61131-3

Instruction List ST FBD Ladder Diagram (LD) • SFC

Прочие

Алгол Алгол 68 Модула-2 Миранда Hope НОРМИН Санда

Эзотерические

HQ9+/HQ9++ • INTERCAL Brainfuck Befunge Malbolge Piet Spoon Unlambda Whitespace FALSE LOLCODE Глагол

Визуальные

G (LabVIEW) • Microsoft VPL Sikuli VisSim Алиса ДРАКОН Скретч

Прочее

ДинамическиеКомпилируемыеС ключевыми словами не на английском языке С C-style синтаксисом СинтаксисYoptaScript

Категория Языки программирования