Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

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

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

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

Языки [ править ]

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

  • Ада
  • АЛГОЛ
  • БАЗОВЫЙ
  • C
  • C ++
  • C # (в байт-код)
  • CLEO
  • КОБОЛ
  • Кобра
  • Кристалл
  • D
  • eC
  • Эйфелева
    • Sather
    • Ubercode
  • Эрланг (в байт-код)
  • F # (в байт-код)
  • Фактор (более поздние версии)
  • Четвертый
  • Фортран
  • Идти
  • Haskell
  • Haxe (в байт-код или C ++)
  • Java (в байт-код)
    • Clojure [2]
    • Scala
    • Котлин
  • Веселый
  • Юлия (через JIT )
  • LabVIEW , G
  • Лисп
    • Common Lisp
  • Пышный
  • Меркурий
  • ML
    • Стандартный ML
      • Алиса
    • OCaml
  • Nim (для C, C ++ или Objective-C)
  • Open-URQ
  • Паскаль
    • Object Pascal
      • Delphi
      • Свободный Паскаль / Лазарь
    • Модула-2
    • Модула-3
    • Оберон
  • Цель-C
  • PL / I
  • РПГ
  • Ржавчина
  • Семя7
  • СПИТБОЛ
  • Быстрый
  • Вланг
  • Visual Foxpro
  • Визуальный пролог
  • W
  • Зиг

Инструменты [ править ]

  • ANTLR
  • CodeWorker
  • Лекс
  • Flex
  • GNU bison
  • Yacc

См. Также [ править ]

  • Компилятор
  • Список компилируемых языков
  • Переводчик (вычислитель)
  • Интерпретируемый язык

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

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

Внешние ссылки [ править ]

  • Скомпилированные языки в Curlie

.