• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Компиляторы

2019/2020
Учебный год
RUS
Обучение ведется на русском языке
4
Кредиты
Статус:
Курс по выбору
Когда читается:
3-й курс, 1, 2 модуль

Преподаватели

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

Аннотация

Является дисциплиной по выбору. Основные задача данного курса — познакомить студентов с базовыми идеями и методами, используемыми при создании современных компиляторов, а также дать практические навыки написания простых компиляторов В результате освоения дисциплины студент должен:  знать основные этапы разработки компилятора;  уметь при компиляции обрабатывать ветвления, циклы, функции;  владеть алгоритмами работы сборщика мусора при разработке компилятора.
Цель освоения дисциплины

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

  • Целями освоения дисциплины «Компиляторы» являются формирование у студентов теоретических знаний и практических навыков по основам создания компиляторов для произвольных языков программирования. Данный курс посвящен принципам разработки компиляторов. Основная задача данного курса - познакомить студентов с базовыми идеями и методами, используемыми при создании современных компиляторов, а также дать практические навыки написания простых компиляторов.
Результаты освоения дисциплины

Результаты освоения дисциплины

  • Знает основные принципы устройства компиляторов. Умеет организовывать и проводить научную дискуссию по вопросам из профессиональной сферы. Владеет навыками обсуждения выбора оптимального компилятора для решения практических задач.
  • Знает основные алгоритмы синтаксического анализа кода. Реализует данные алгоритмы. Владеет навыками реализации стековой машины компилятора.
  • Знает основные этапы разработки компилятора. Реализует все компоненты компилятора. Владеет методами генерации лексеров и парсеров при разработке компилятора.
  • Знает основные принципы устройства динамических структур данных. Знает дисциплины управления динамической памятью.
Содержание учебной дисциплины

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

  • Введение. Языки программирования и машинные архитектуры. Компилятор, интерпретатор
  • Синтаксический анализ. Стековая машина
  • Система команд x86. Генератор кода, конструкции управления, процедуры и функции.
  • Динамические структуры данных и символические выражения
Элементы контроля

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

  • неблокирующий Created with Sketch. Домашнее задание 1
  • неблокирующий Created with Sketch. Домашнее задание 2
  • блокирующий Created with Sketch. Устный экзамен
Промежуточная аттестация

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

  • Промежуточная аттестация (2 модуль)
    0.25 * Домашнее задание 1 + 0.25 * Домашнее задание 2 + 0.5 * Устный экзамен
Список литературы

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

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

  • Малявко А. А.-ФОРМАЛЬНЫЕ ЯЗЫКИ И КОМПИЛЯТОРЫ. Учебное пособие для вузов-М.:Издательство Юрайт,2019-429-Университеты России-978-5-534-04288-7: -Текст электронный // ЭБС Юрайт - https://biblio-online.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