Бакалавриат
2020/2021





Компиляторы
Статус:
Курс обязательный (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент информатики
Когда читается:
2-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Язык:
русский
Кредиты:
4
Контактные часы:
60
Программа дисциплины
Аннотация
Является дисциплиной по выбору. Основные задача данного курса — познакомить студентов с базовыми идеями и методами, используемыми при создании современных компиляторов, а также дать практические навыки написания простых компиляторов В результате освоения дисциплины студент должен: знать основные этапы разработки компилятора; уметь при компиляции обрабатывать ветвления, циклы, функции; владеть алгоритмами работы сборщика мусора при разработке компилятора.
Цель освоения дисциплины
- Целями освоения дисциплины «Компиляторы» являются формирование у студентов теоретических знаний и практических навыков по основам создания компиляторов для произвольных языков программирования. Данный курс посвящен принципам разработки компиляторов. Основная задача данного курса - познакомить студентов с базовыми идеями и методами, используемыми при создании современных компиляторов, а также дать практические навыки написания простых компиляторов.
Планируемые результаты обучения
- Знает основные принципы устройства компиляторов. Умеет организовывать и проводить научную дискуссию по вопросам из профессиональной сферы. Владеет навыками обсуждения выбора оптимального компилятора для решения практических задач.
- Знает основные алгоритмы синтаксического анализа кода. Реализует данные алгоритмы. Владеет навыками реализации стековой машины компилятора.
- Знает основные этапы разработки компилятора. Реализует все компоненты компилятора. Владеет методами генерации лексеров и парсеров при разработке компилятора.
- Знает основные принципы устройства динамических структур данных. Знает дисциплины управления динамической памятью.
Содержание учебной дисциплины
- Введение. Языки программирования и машинные архитектуры. Компилятор, интерпретатор
- Синтаксический анализ. Стековая машина
- Система команд x86. Генератор кода, конструкции управления, процедуры и функции.
- Динамические структуры данных и символические выражения
Элементы контроля
- Домашнее задание 1
- Домашнее задание 2
- Устный экзамен
- Домашнее задание 1
- Домашнее задание 2
- Устный экзамен
Промежуточная аттестация
- Промежуточная аттестация (2 модуль)0.25 * Домашнее задание 1 + 0.25 * Домашнее задание 2 + 0.5 * Устный экзамен
Список литературы
Рекомендуемая основная литература
- Малявко А. А. - ФОРМАЛЬНЫЕ ЯЗЫКИ И КОМПИЛЯТОРЫ. Учебное пособие для вузов - М.:Издательство Юрайт - 2019 - 429с. - ISBN: 978-5-534-04288-7 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/formalnye-yazyki-i-kompilyatory-438060
Рекомендуемая дополнительная литература
- 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