• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
2025/2026

Машинно-зависимые оптимизации в компиляторах

ID 953667

Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Статус: Маго-лего
Когда читается: 1 модуль
Охват аудитории: для всех кампусов НИУ ВШЭ
Язык: русский
Кредиты: 3
Контактные часы: 28

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

Аннотация

Машинно-зависимые оптимизации при трансляции опираются на использование особенностей архитектуры и системы команд базовой машины. В ходе курса подробно рассматриваются машинно-зависимые алгоритмы оптимизации компилятора, а также примеры их работы. К ним относятся генерация кода, распределитель регистров, планирование инструкций, программная конвейеризация циклов и другие оптимизации компилятора. Алгоритмы, обсуждаемые в курсе, используются в современных промышленных компиляторах, таких как Clang/LLVM и GCC.
Цель освоения дисциплины

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

  • Понимание принципов работы оптимизирующего компилятора, выполнения машинно-зависимых оптимизаций и генерации кода под современные процессорные архитектуры с учетом их особенностей
Планируемые результаты обучения

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

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

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

  • Введение и обзор RISC-архитектуры
  • Выбор команд
  • Распределение и назначение регистров
  • Планирование кода
  • Программная конвейеризация
  • Динамическая компиляция
Элементы контроля

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

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

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

  • 2025/2026 1st module
    Final = 0.8*Экзамен + 0.2*5*Max(2, КР_1 + КР_2) * каждая из оценок за КР_1 и КР_2 – числа в интервале [0; 2]
Список литературы

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

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

  • Конструирование компиляторов: анализ и синтез в сфере искусственного интеллекта - Золкин А. Л. - Издательство "Лань" - 978-5-507-52290-3 - 2025 - русский - https://e.lanbook.com/book/482951 - ЛАНЬ - 482951

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

  • Построение компиляторов - Вирт Н. - Издательство "ДМК Пресс" - 978-5-94074-585-3 - 2010 - русский - https://e.lanbook.com/book/1262 - ЛАНЬ - 1262

Авторы

  • Самоненко Илья Юрьевич
  • Петренко Александр Константинович
  • Буцкая Евгения Александровна