Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную информацию об использовании файлов cookies можно найти здесь, наши правила обработки персональных данных – здесь. Продолжая пользоваться сайтом, вы подтверждаете, что были проинформированы об использовании файлов cookies сайтом НИУ ВШЭ и согласны с нашими правилами обработки персональных данных. Вы можете отключить файлы cookies в настройках Вашего браузера.

  • A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Магистратура 2023/2024

Языки программирования и компиляторы

Статус: Курс обязательный (Компьютерные системы и сети)
Направление: 09.04.01. Информатика и вычислительная техника
Когда читается: 1-й курс, 3, 4 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для своего кампуса
Преподаватели: Карпов Юрий Глебович, Шульгин Михаил Алексеевич
Прогр. обучения: Компьютерные системы и сети
Язык: русский
Кредиты: 6
Контактные часы: 80

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

Аннотация

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

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

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

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

  • знать основные этапы разработки компилятора;
  • уметь при компиляции обрабатывать ветвления, циклы, функции;
  • владеть алгоритмами работы сборщика мусора при разработке компилятора.
  • Знание утилит лексического анализа языка flex и синтаксического анализа BIZON
Содержание учебной дисциплины

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

  • Формальные языки. Грамматики. КА
  • Теория конечных автоматов-распознавателей
  • Регулярные множества и регулярные выражения
  • BDD: Binary Decision Diagrams
  • Трансляция автоматных языков
  • Язык Милан и стековая машина
  • Порождающие грамматики Хомского
  • Атрибутные трансляции и двусмысленные КС-грамматики
  • Атрибутная семантика
  • Трансляция арифметических выражений
  • Конечные автоматы
  • Синтаксический анализ. s-грамматики. Санация КС-грамматик
  • Грамматики рекурсивного спуска
Элементы контроля

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

  • неблокирующий Самостоятельная работа
  • неблокирующий Курсовая работа
  • неблокирующий Экзамен
  • неблокирующий Экзамен
Промежуточная аттестация

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

  • 2023/2024 4th module
    0.3 * Курсовая работа + 0.3 * Курсовая работа + 0.1 * Самостоятельная работа + 0.1 * Самостоятельная работа + 0.2 * Экзамен
Список литературы

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

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

  • Sharan, K. (2017). Beginning Java 9 Fundamentals : Arrays, Objects, Modules, JShell, and Regular Expressions (Vol. Second edition). [Berkeley, CA]: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1632186
  • Князьков, В. С. Введение в теорию автоматов : учебное пособие / В. С. Князьков, Т. В. Волченская. — 2-е изд. — Москва : ИНТУИТ, 2016. — 89 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100715 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

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

  • Драгилева, И. П. Автоматы и алгоритмы : методические рекомендации / И. П. Драгилева, А. С. Митин. — Москва : РТУ МИРЭА, 2022. — 21 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/265646 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Эриксон, Д. Алгоритмы : руководство / Д. Эриксон , перевод с английского А. В.Снастина, П. Б. Иванова. — Москва : ДМК Пресс, 2023. — 526 с. — ISBN 978-5-97060-981-1. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/348125 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Авторы

  • Романова Ирина Ивановна
  • Башун Владимир Владимирович
  • Карпов Юрий Глебович