Скачать презентацию КОМПИЛЯТОРЫ Миронов Евгений Сергеевич Компиляторы Компилятор транслятор Скачать презентацию КОМПИЛЯТОРЫ Миронов Евгений Сергеевич Компиляторы Компилятор транслятор

КОМПИЛЯТОРЫ.pptx

  • Количество слайдов: 14

КОМПИЛЯТОРЫ Миронов Евгений Сергеевич КОМПИЛЯТОРЫ Миронов Евгений Сергеевич

Компиляторы Компилятор (транслятор) Интерпретатор JIT Компиляторы Компилятор (транслятор) Интерпретатор JIT

Компилятор (транслятор) Компилятор (транслятор)

Интерпретаторы Интерпретаторы

Гибридный компилятор (JIT) Гибридный компилятор (JIT)

Выполнение исходной программы Исходная программа Препроцессор Компилятор Ассемблер Компоновщик/загрузчик Целевой машинный код Выполнение исходной программы Исходная программа Препроцессор Компилятор Ассемблер Компоновщик/загрузчик Целевой машинный код

Компоновщик/загрузчик Компоновщик ( «Линкер» , «Линковщик» ) – обеспечивает обращение кода из одного файла Компоновщик/загрузчик Компоновщик ( «Линкер» , «Линковщик» ) – обеспечивает обращение кода из одного файла к коду из другого файла Загрузчик – помещает все выполнимые объектные файлы в память для выполнения

Компиляторы (фазы компиляции) Компиляторы (фазы компиляции)

Компилятор (фазы компиляции) Лексический анализатор Синтаксический анализатор Семантический анализатор Генератор промежуточного кода Машинно-независимый оптимизатор Компилятор (фазы компиляции) Лексический анализатор Синтаксический анализатор Семантический анализатор Генератор промежуточного кода Машинно-независимый оптимизатор кода Генератор кода Машинно-зависимый оптимизатор кода

Лексический анализатор Поток символов группируется в значащие последовательности (лексемы) Для каждой лексемы анализатор строит Лексический анализатор Поток символов группируется в значащие последовательности (лексемы) Для каждой лексемы анализатор строит токен: ◦ (имя_токена, значение_атрибута)

Синтаксический анализ или разбор (parsing) Строится древовидное представление программы Построение дерева основано на грамматике Синтаксический анализ или разбор (parsing) Строится древовидное представление программы Построение дерева основано на грамматике языка

Семантический анализ Проверка исходной программы на семантическую согласованность языка Проверка типов Семантический анализ Проверка исходной программы на семантическую согласованность языка Проверка типов

Оставшиеся фазы Генерация промежуточного кода Оптимизация кода (машиннонезависимая) Генерация кода Оптимизация кода (машиннозависимая) Оставшиеся фазы Генерация промежуточного кода Оптимизация кода (машиннонезависимая) Генерация кода Оптимизация кода (машиннозависимая)

Таблица символов Имя и его атрибуты Атрибуты ◦ Количество памяти ◦ Тип ◦ Область Таблица символов Имя и его атрибуты Атрибуты ◦ Количество памяти ◦ Тип ◦ Область видимости