Является дисциплиной по выбору. Дисциплина призвана познакомить студентов с базовыми идеями и методами, используемыми при создании современных компиляторов, а также дать практические навыки написания простых компиляторов. Для освоения дисциплины студентам необходимы знания, полученные в результате изучения дисциплин «Формальные языки», «Функциональное программирование».
Цель освоения дисциплины
Формирование у студентов теоретических знаний и практических навыков по основам создания компиляторов для произвольных языков программирования.
Планируемые результаты обучения
Знает основные этапы разработки компилятора.
Умеет при компиляции обрабатывать ветвления, циклы, функции.
Имеет навыки использования алгоритмов работы сборщика мусора при разработке компилятора.
Содержание учебной дисциплины
Раздел 1. Введение. Языки программирования и машинные архитектуры. Компилятор, интерпретатор
Раздел 2. Синтаксический анализ. Стековая машина
Раздел 3. Система команд x86. Генератор кода, конструкции управления, процедуры и функции.
Раздел 4. Динамические структуры данных и символические выражения
Элементы контроля
Экзамен
Устный экзамен проводится в форме подробного объяснения решения одной задачи из домашнего задания, выбор задачи происходит случайным образом на экзамене. На подготовку ответа выделяется 2,5 часа.
Домашнее задание №1
Домашнее задание №1 выдается студентам в одном варианте и состоит из 5 задач. Каждой задаче присвоен свой балл. Срок выполнения домашнего задания - 5 недель. Форма представления обучающимися домашнего задания - представленные в письменном виде решения
задач.
Домашнее задание №2
Домашнее задание №2 выдается студентам в одном варианте и состоит из 4 задач. Каждой задаче присвоен свой балл. Срок выполнения домашнего задания - 4 недели. Форма представления обучающимися домашнего задания - представленные в письменном виде решения задач.
Промежуточная аттестация
2025/2026 2nd module
Преподаватель учитывает оценку за текущий контроль (домашние задания).
Онакопленная = 0,5*Од/з1 + 0,5О*д/з2
Результирующая оценка за дисциплину рассчитывается следующим образом:
ОРезультирующая = 0,5*Онакопленная + 0,5*Оэкзамен
Список литературы
Рекомендуемая основная литература
Алгоритмы и структуры данных: Учебник / Белов В.В., Чистякова В.И. - Москва :КУРС, НИЦ ИНФРА-М, 2020. - 240 с.: - (Бакалавриат) - Текст : электронный. - URL: http://znanium.com/catalog/product/1057212
Малявко, А. А. Формальные языки и компиляторы : учебное пособие для вузов / А. А. Малявко. — Москва : Издательство Юрайт, 2021. — 429 с. — (Высшее образование). — ISBN 978-5-534-04288-7. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/472099 (дата обращения: 04.07.2025).
Рекомендуемая дополнительная литература
Grune, D., & Jacobs, C. J. H. (2008). Parsing Techniques : A Practical Guide (Vol. 2nd ed). New York: Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=254768
Instructors
Moskvin, Denis
Ткаченко Данил Михайлович
Программа дисциплины
Аннотация
Цель освоения дисциплины
Планируемые результаты обучения
Содержание учебной дисциплины
Элементы контроля
Промежуточная аттестация
Список литературы
Рекомендуемая основная литература
Рекомендуемая дополнительная литература
Авторы