Языки программирования
План лекции 1
Классификация подходов при создании трансляторов
Компиляция
Интерпретация
Ассемблер
Виртуальная машина
Компиляция Just In Time
Фазы компиляции
Роль фаз компиляции в наше время
70.11K
Category: programmingprogramming

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

1. Языки программирования

Теория разработки трансляторов и
практическая применимость
технологий генерации компиляторов

2. План лекции 1

• Классификация подходов при создании
трансляторов
• Компиляция
• Интерпретация
• Ассемблер
• Компиляция JIT
• Виртуальная машина
• Фазы компиляции
• Компиляторы компиляторов
• Формулировка практического задания. Обсуждение
этапов работы.

3. Классификация подходов при создании трансляторов

Трансля́тор — программа, которая принимает на вход
программу на одном языке, и преобразует её в программу,
написанную на другом языке.
Компилятор — выдает результат в виде исполняемого файла
(компоновка входит в компиляцию).
Интерпретатор — исполняет программу после разбора. Код
исполняется построчно, программа транслируется
(интерпретируется) при каждом запуске.
Ассемблер — компьютерная программа, компилятор
исходного текста программы написанной на языке ассемблера,
в программу на машинном коде.

4. Компиляция

Компилятор (compiler) переводит исходную программу в эквивалентную
программу на языке, понятном компьютеру, то есть на машинном языке.
Программа, полученная в результате работы компилятора - целевая программа
(target program).
Процесс компиляции и последующего выполнения программы:
Исходная
программа
Компиляция
Целевая
программа
Входные
данные
Целевая программа
Результат

5. Интерпретация

Интерпретатор — исполняют программу после разбора (в этом случае в роли объектного
кода выступает внутреннее представление программы интерпретатором).
Процесс интерпретации программы в общем случае:
Программа на
входном языке
Интерпретатор
Результат
работы
программы
Сообщения
об ошибках
Программа исполняется построчно:
Начало
Выборка
очередной
инструкции
Анализ
инструкции
Выполнение
инструкции

6. Ассемблер

Ассемблер – это вид транслятора, компилятор исходного текста программы
написанной на языке ассемблера, в программу на машинном коде.
Процесс работы компилятора, ассемблера и линковщика:
Исходная
программа
Программа
на ассемблере
Компиляция
Ассемблер
Объектная
программа

Объектная
программа
Редактор
связей
Результирующая
программа

7. Виртуальная машина

Виртуальная машина– это разновидность интерпретатора, которая:
1. Перед исполнением переводят программу в байт-код
2. Предоставляет программам расширенное по функционалу окружение
Процесс исполнения кода посредством виртуальной машины:
Исходная
программа
Компилятор
Байт-код
Интерпретатор
Результат
Данные

8. Компиляция Just In Time

JIT компилятор – это разновидность интерпретатора, которая перед исполнением
переводят программу непосредственно в машинный код и хранит его в памяти не
сохраняя в виде исполняемого файла
Процесс исполнения кода посредством компилятора JIT:
Исходная
программа
Компилятор
Байт-код
Данные
JIT-компилятор
Исполняемый
код
Результат

9. Фазы компиляции

• Лексический анализ (сканирование,
scanning)
• Препроцессор
• Синтаксический анализ (разбор, parsing)
• Семантический анализ
• Генерация промежуточного кода
• Оптимизация кода
• Генерация кода

10. Роль фаз компиляции в наше время

Ранее:
Lexer
Parser
Sem.
Optimiz.
Code Gen
Сейчас:
Lex.
Pars.
Semantic
Optimization
C.G.
English     Русский Rules