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

Compiler Technologies 2

2024/2025
Academic Year
RUS
Instruction in Russian
3
ECTS credits
Course type:
Elective course
When:
2 year, 1 module

Instructor


Мельник Дмитрий Михайлович

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

Аннотация

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Cooper, K., & Torczon, L. (2012). Engineering a Compiler. San Francisco: Elsevier Ltd. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=354941
  • Shankar, P., & Srikant, Y. N. (2008). The Compiler Design Handbook : Optimizations and Machine Code Generation, Second Edition (Vol. 2nd ed). Boca Raton: CRC Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=209423

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

  • Keith Cooper, & Linda Torczon. (2004). Engineering a Compiler. Morgan Kaufmann.

Авторы

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