We use cookies in order to improve the quality and usability of the HSE website. More information about the use of cookies is available here, and the regulations on processing personal data can be found here. By continuing to use the site, you hereby confirm that you have been informed of the use of cookies by the HSE website and agree with our rules for processing personal data. You may disable cookies in your browser settings.

  • A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Theory and Methods of Translation and Compilation

2023/2024
Academic Year
RUS
Instruction in Russian
3
ECTS credits
Delivered at:
Department of Applied Mathematics and Informatics (Faculty of Informatics, Mathematics, and Computer Science (HSE Nizhny Novgorod))
Course type:
Compulsory course
When:
3 year, 4 module

Instructor


Naumov, Nikita

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

Аннотация

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

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

  • Дать специалисту основные знания о том, как устроен компилятор
  • Дать специалисту знания о разных частях компилятора и как их можно реализовать и применять
Планируемые результаты обучения

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

  • Знать что такое компилятор, как он устроен, какая часть отвечает за что
  • Использовать LR анализ, построение LR(0)-автомата и его применение
  • Преобразование НКА в ДКА и использование ДКА для проверки реализации шаблона
  • Преобразование регулярного выражения в НКА
  • Проводить восходящий синтаксический анализ
  • Проводить нисходящий синтаксический анализ
  • Составление регулярного выражения для описания шаблона токена
  • Устранение неоднозначности, устранение левой рекурсии и левая факторизация грамматики
  • Что такое грамматики и как их строить
  • Что такое трёхадресный код, трансляция выражений
  • Исполнение лабораторной работы
Содержание учебной дисциплины

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

  • Введение в компиляцию и структура компилятора
  • Лексический анализ
  • Синтаксический анализ
  • Генерация промежуточного кода
Элементы контроля

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

  • неблокирующий Контрольная работа 2
  • неблокирующий Контрольная работа 1
  • неблокирующий Лабораторная работа 2
    Описание правил в БНФ для синтаксического анализа
  • неблокирующий Лабораторная работа 1
    Построение КА для лексического анализа
  • неблокирующий Устный ответ на вопросы из билетов
Промежуточная аттестация

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

  • 2023/2024 учебный год 4 модуль
    0.02 * Контрольная работа 1 + 0.02 * Контрольная работа 2 + 0.08 * Лабораторная работа 1 + 0.08 * Лабораторная работа 2 + 0.8 * Устный ответ на вопросы из билетов
Список литературы

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

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

  • Малявко, А. А.  Формальные языки и компиляторы : учебное пособие для вузов / А. А. Малявко. — Москва : Издательство Юрайт, 2019. — 429 с. — (Университеты России). — ISBN 978-5-534-04288-7. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/438060 (дата обращения: 28.08.2023).
  • Построение компиляторов, Вирт, Н., 2013

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

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

Авторы

  • Колданов Петр Александрович