Компилятор: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Строка 51:
 
=== Генерация байт-кода ===
Результатом работы компилятора может быть программа на специально созданном [[низкоуровневый язык программирования|низкоуровневом языке]] языке двоично-кодовых команд, подлежащемвыполняемых ''[[интерпретатор|интерпретации]] ''виртуальной машиной]]''. Такой язык называется псевдокодом или [[байт-код]]ом. Как правило, он не являетсяесть машинныммашинный кодомкод какого-либо компьютера и программы на нём могут исполняться на различных архитектурах, где имеется соответствующая виртуальная машина, но в некоторых случаях создаются аппаратные платформы, напрямую поддерживающиевыполняющие псевдокод какого-либо языка. Например, псевдокод языка Java называется [[байт-код Java|байт-кодом Java]] и выполняется в [[Java Virtual Machine]], для его прямого исполнения была создана спецификация процессора [[picoJava]]. Для платформы [[.NET Framework]] псевдокод называется [[Common Intermediate Language]] (CIL), а среда исполнения — Common Language Runtime (CLR).
 
Некоторые реализации интерпретируемых языков высокого уровня (например, Perl) используют байт-код для оптимизации исполнения: затратные этапы синтаксического анализа и преобразование текста программы в байт-код выполняются один раз при загрузке, затем соответствующий код может многократно использоваться без промежуточных этаповперекомляции.
 
=== Динамическая компиляция ===