Теория языков программирования и методы трансляции Тема 1 Основные концепции
Компиляция Компилятор – программа, которая считывает текст программы, написанной на исходном, и транслирует (переводит) его в эквивалентный текст на целевом языке.
Компиляция В зависимости от предназначения, принципов и технологии создания компиляторы могут быть Однопроходные Многопроходные Исполняющие Отлаживающие Оптимизирующие
Компиляция Анализ – разбиение исходной программы на составные части Синтез – конструирование целевой программы
Контекст компилятора При создании целевой программы, кроме компилятора, могут потребоваться и другие программы.
Фаза анализа Лексический анализ Синтаксический анализ Семантический анализ
Лексический анализ (сканирование) Поток символов исходной программы считывается слева направо и группируется в токены, представляющие собой последовательности символов с определенным совокупным значением.
Синтаксический анализ (разбор) Выполняет группирование токенов исходной программы в грамматические фразы, используемые компилятором для синтеза вывода.
Семантический анализ Проверяется наличие семантических ошибок и накапливается информация о типах для следующей стадии.
Инструментальные средства Генераторы сканеров Генераторы синтаксических анализаторов Автоматические генераторы кода
Литература Альфред Ахо, Рави Сети, Джеффри Ульман – Компиляторы. Принципы, технологии, инструменты. Робин Хантер – Основные концепции компиляторов. Т. Пратт, М. Зелковец – Языки программирования: разработка и реализация. Ю.Г. Карпов – Теория и технология программирования. Основы построения трансляторов.