~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 85F0D74AB8BF543C7CB3FD0C76861615__1712219280 ✰
Заголовок документа оригинал.:
✰ Programming language implementation - Wikipedia ✰
Заголовок документа перевод.:
✰ Реализация языка программирования — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Programming_language_implementation ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/85/15/85f0d74ab8bf543c7cb3fd0c76861615.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/85/15/85f0d74ab8bf543c7cb3fd0c76861615__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 09:58:07 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 4 April 2024, at 11:28 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Реализация языка программирования — Википедия Jump to content

Реализация языка программирования

Из Википедии, бесплатной энциклопедии

В компьютерном программировании представляет реализация языка программирования собой систему для выполнения компьютерных программ . Существует два общих подхода к реализации языка программирования: [1]

  • Интерпретация : программа считывается как ввод интерпретатором, который выполняет действия, записанные в программе. [2]
  • Компиляция : программа считывается компилятором, который переводит ее на какой-либо другой язык, например байт-код или машинный код . Транслированный код может быть либо непосредственно выполнен аппаратным обеспечением, либо служить входными данными для другого интерпретатора или другого компилятора. [2]

Переводчик [ править ]

Интерпретатор : состоит из двух частей парсера и оценщика . После того как программа считывается интерпретатором как ввод, она обрабатывается синтаксическим анализатором. Синтаксический анализатор разбивает программу на языковые компоненты для формирования дерева разбора . Затем оценщик использует дерево синтаксического анализа для выполнения программы. [3]

Виртуальная машина [ править ]

Виртуальная машина это особый тип интерпретатора, который интерпретирует байт-код. [2] Байт-код — это переносимый низкоуровневый код, похожий на машинный код, хотя обычно он выполняется на виртуальной машине, а не на физической машине. [4] Чтобы повысить эффективность, многие языки программирования, такие как Java , [4] Питон , [5] и С# [6] перед интерпретацией компилируются в байт-код.

Компилятор «точно в срок» [ править ]

Некоторые виртуальные машины включают JIT-компилятор для повышения эффективности выполнения байт-кода. Если во время выполнения байт-кода виртуальной машиной JIT-компилятор определяет, что часть байт-кода будет использоваться повторно, он компилирует эту конкретную часть в машинный код. Затем JIT-компилятор сохраняет машинный код в памяти , чтобы его могла использовать виртуальная машина. JIT-компиляторы пытаются найти баланс между более длительным временем компиляции и более быстрым временем выполнения. [2]

Компилятор [ править ]

Компилятор . переводит программу, написанную на одном языке, на другой язык Большинство компиляторов разбиты на три этапа: интерфейсная часть , оптимизатор и внутренняя часть . Интерфейсная часть отвечает за понимание программы. Он проверяет корректность программы и преобразует ее в промежуточное представление — структуру данных, используемую компилятором для представления программы. Оптимизатор улучшает промежуточное представление, чтобы увеличить скорость или уменьшить размер исполняемого файла , который в конечном итоге создается компилятором. Серверная часть преобразует оптимизированное промежуточное представление в выходной язык компилятора. [7]

Если компилятор данного языка высокого уровня создает другой язык высокого уровня, он называется транспилятором . Транспиляторы можно использовать для расширения существующих языков или для упрощения разработки компиляторов за счет использования переносимых и хорошо оптимизированных реализаций других языков (таких как C ). [2]

Возможны многие комбинации интерпретации и компиляции, и многие современные реализации языков программирования включают элементы того и другого. Например, язык программирования Smalltalk традиционно реализуется путем компиляции в байт-код , который затем либо интерпретируется, либо компилируется виртуальной машиной . Поскольку байт-код Smalltalk запускается на виртуальной машине, его можно переносить на различные аппаратные платформы. [8]

Несколько реализаций [ править ]

Языки программирования могут иметь несколько реализаций. Различные реализации могут быть написаны на разных языках и использовать разные методы компиляции или интерпретации кода. Например, реализации Python включают: [9]

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

  1. ^ Ранта, Аарне (6 февраля 2012 г.). Реализация языков программирования (PDF) . Публикации колледжа. стр. 16–18. ISBN  9781848900646 . Архивировано (PDF) из оригинала 7 ноября 2020 г. Проверено 22 марта 2020 г.
  2. ^ Перейти обратно: а б с д Это Бейкер, Грег. «Языковые реализации» . Информатика – Университет Саймона Фрейзера . Архивировано из оригинала 8 марта 2019 года . Проверено 22 марта 2020 г.
  3. ^ Эванс, Дэвид (19 августа 2011 г.). Введение в вычислительную технику (PDF) . Университет Вирджинии. п. 211 . Проверено 22 марта 2020 г.
  4. ^ Перейти обратно: а б Шридхар, Джей (29 августа 2017 г.). «Почему виртуальная машина Java помогает вашему коду работать лучше» . СделатьUseOf . Проверено 22 марта 2020 г.
  5. ^ Беннетт, Джеймс (23 апреля 2018 г.). «Введение в байт-код Python» . Opensource.com . Проверено 22 марта 2020 г.
  6. ^ Али, Мирза Фаррух (12 октября 2017 г.). «Common Language Runtime (CLR) DotNet» . Середина . Проверено 22 марта 2020 г.
  7. ^ Купер, Кейт; Торчон, Линда (7 февраля 2011 г.). Разработка компилятора (2-е изд.). Морган Кауфманн. стр. 6-9 . ISBN  9780120884780 .
  8. ^ Льюис, Саймон (11 мая 1995 г.). Искусство и наука Smalltalk (PDF) . Прентис Холл. стр. 20–21. ISBN  9780133713459 . Проверено 23 марта 2020 г.
  9. ^ «Альтернативные реализации Python» . Python.org . Проверено 23 марта 2020 г.

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

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 85F0D74AB8BF543C7CB3FD0C76861615__1712219280
URL1:https://en.wikipedia.org/wiki/Programming_language_implementation
Заголовок, (Title) документа по адресу, URL1:
Programming language implementation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)