Введение в теорию компиляции презентация

Определения Транслятор – это программа, которая переводит программу на исходном (входном) языке в эквивалентную ей программу на

Слайд 1Введение в теорию компиляции
Основные принципы построения трансляторов


Слайд 2Определения
Транслятор – это программа, которая переводит программу на

исходном (входном) языке в эквивалентную ей программу на результирующем (выходном) языке




Входные данные – программа на исходном языке программирования
Выходные данные – программа на результирующем языке, или сообщение об ошибках
Эквивалентность – совпадение смысла исходной и результирующей программ с точки зрения семантики входного и семантики выходного языка

Транслятор

исходная программа

результир.
программа

сообщение об ошибках


Слайд 3Определения
Компилятор – это транслятор, переводящий исходную

программу в эквивалентную ей результирующую программу на языке машинных команд или на языке ассемблера

Компилятор – частный случай транслятора

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

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



Слайд 4Определения
Интерпретатор – это программа, которая воспринимает

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

Не порождает результирующую программу

Результат работы интерпретатора – результат выполнения исходной программы

Исходная программа преобразовывается в язык машинных команд, но команды порождаются, выполняются и уничтожаются интерпретатором по мере надобности и невидимы для пользователя


Слайд 5Общая схема работы компилятора
Основные этапы компиляции:

- анализ
- синтез
Основные фазы компиляции:

- лексический

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

Слайд 6Общая схема работы компилятора
Таблицы идентификаторов (таблицы символов)–

специальным образом организованные наборы данных для хранения информации об элементах исходной программы

Элементы программы – переменные, константы, функции и т.п.


Слайд 7Понятие прохода
Проход – процесс обработки всего, возможно, уже

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

Зависимость:




Количество проходов зависит от грамматики и семантических правил исходного языка


Слайд 8

Понятие прохода (пример)
Лексический анализ
Синтаксический разбор + семантический анализ
Генерация и оптимизация кода
1-ый

проход

2-ой проход

3-ий проход

Таблица лексем

Семантическое дерево
(ОПЗ, тетрады, триады)

Исходная программа

Объектная программа


Слайд 9Таблицы идентификаторов
Назначение – хранение идентификаторов и их характеристик
Особенности:
возможно значительный объем хранимой

информации
может быть одна ТИ или несколько (например, для различных модулей или различных типов элементов)
состав информации, хранимой в ТИ, зависит от семантики входного языка и типа элемента
информация в ТИ заполняется не сразу, а по мере того, как становится известна – на различных фазах компиляции
принцип работы с ТИ – многократное обращение компилятора для поиска информации и записи новых данных на различных фазах компиляции


ТИ должны быть организованы таким образом, чтобы обеспечить максимально быстрый поиск нужного элемента


Слайд 10Таблицы идентификаторов
Неупорядоченные
Массив/список
Бинарное дерево поиска
На основе хэш-функции
Комбинированные методы
Рехэширование
Метод цепочек
Упорядоченные
Методы организации ТИ
по способу

разрешения коллизий

Слайд 11Хэш-адресация


Слайд 12Разрешение коллизий: рехэширование (метод открытой адресации)


Слайд 13Разрешение коллизий: метод цепочек


Слайд 14Разрешение коллизий: метод цепочек


Слайд 15Комбинированные методы


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика