• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2025/2026

Разработка компиляторов

Когда читается: 3-й курс, 3, 4 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 6
Контактные часы: 80

Программа дисциплины

Аннотация

Курс посвящён разработке компиляторов и инженерии языков программирования. Студенты изучат основные этапы построения современных компиляторов — синтаксический и семантический анализ, промежуточные представления, оптимизации и генерацию кода. Практическая часть курса состоит в поэтапной разработке собственного компилятора для учебного языка программирования. Полученные знания применимы в системном программировании, разработке языков и рантаймов, виртуальных машин, статического анализа, а также при работе с индустриальными компиляторными инфраструктурами и инструментами оптимизации.
Цель освоения дисциплины

Цель освоения дисциплины

  • Цели изучения дисциплины — формирование у студентов профессиональных компетенций в области методов, инструментов и процессов разработки компиляторов.
Планируемые результаты обучения

Планируемые результаты обучения

  • Знать основные методы конструирования компиляторов
  • Знать что такое компилятор, как он устроен, какая часть отвечает за что
  • Знать принципы работы компиляторов и интепретаторов
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение в компиляторы и языки программирования
  • Роль компилятора, этапы компиляции, обзор архитектуры компиляторной системы
  • Лексический анализ и синтаксический разбор
  • Формальные грамматики, токенизация, построение парсеров, абстрактное синтаксическое дерево
  • Представление программ и абстрактный синтаксис
  • AST, структуры данных для представления программ, обходы и трансформации
  • Семантический анализ
  • Области видимости, таблицы символов, проверка типов, статические ошибки
  • Промежуточное представление программ и граф потока управления
  • Трёхадресный код, базовые блоки, CFG, введение в SSA-подобные представления
  • Анализы потоков данных
  • Формулировка анализов, прямые и обратные задачи, распространение констант, достижимые определения
  • Оптимизации программ
  • Удаление мёртвого кода, локальные и глобальные оптимизации, оптимизации на уровне IR
  • Генерация кода и выполнение программ
  • Отображение IR на целевую модель выполнения, генерация исполняемого кода
Элементы контроля

Элементы контроля

  • неблокирующий Проект 1
  • неблокирующий Проект 2
  • неблокирующий Проект 3
  • неблокирующий Экзамен
    Защита Проект 3.
Промежуточная аттестация

Промежуточная аттестация

  • 2025/2026 4th module
    0.4 * Проект 2 + 0.1 * Проект 1 + 0.3 * Проект 3 + 0.2 * Экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • Вирт, Н. Построение компиляторов / Н. Вирт. — Москва : ДМК Пресс, 2010. — 192 с. — ISBN 978-5-94074-585-3. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1262 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Золкин, А. Л. Конструирование компиляторов: анализ и синтез в сфере искусственного интеллекта : учебное пособие для вузов / А. Л. Золкин. — Санкт-Петербург : Лань, 2025. — 176 с. — ISBN 978-5-507-52290-3. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/482951 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Рекомендуемая дополнительная литература

  • Малявко, А. А.  Формальные языки и компиляторы : учебник для вузов / А. А. Малявко. — Москва : Издательство Юрайт, 2025. — 429 с. — (Высшее образование). — ISBN 978-5-534-04288-7. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/562822 (дата обращения: 14.01.2026).
  • Малявко, А. А.  Формальные языки и компиляторы : учебное пособие для вузов / А. А. Малявко. — Москва : Издательство Юрайт, 2024. — 429 с. — (Высшее образование). — ISBN 978-5-534-04288-7. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/538879 (дата обращения: 04.07.2025).

Авторы

  • Мыльцев Александр Владимирович
  • Кононова Елизавета Дмитриевна