Адрес e-mail:

«Оптимизация программного кода» (9 семестр)

Программа курса

«Оптимизация программного кода» (9 семестр)

 

1. Архитектуры, системное и прикладное программное обеспечение

1.1. Архитектуры вычислительных систем и программное обеспечение как составная часть архитектуры. Производительность архитектуры и совместимость ПО.

1.2. Системный уровень программного обеспечения и прикладное программирование. Системы программирования.

1.3. Разработка программного обеспечения для новых архитектор.

 

2. Системы программирования

2.1. Макроструктура компилятора (Препроцессор, компилятор, ассемблер, линкер)

2.2. Общее понятие об исполняемых форматах (ELF, PE, a.out, row); realloc & execution

2.3. Представления об отладочный форматах (Coff, DWARF, …)

2.4. Основные системные утилиты (asm, disasm, linker (ld vs. gold), …)

2.5. Библиотеки (статическая и динамическая линковка, библиотеки языковой поддержки, STL, boost, ...)

2.6. Система программирования GNU

2.7. Разработка систем программирования для новых архитектур

2.8. Системы отладки (debugger, valgrind, thread sanitizer, …)

 

3. Компиляторы и технологии оптимизирующей компиляции.

3.1. Оптимизация ПО для разных архитектур. Различные уровни распараллеливания вычислений.

3.2. Структура оптимизирующих компиляторов. Различные виды промежуточного представления программы. Базовые структуры данных используемые в оптимизаторах.

3.3. Анализ потока управления в программе, CFG-граф, линейные участки.

3.4. Анализ потока данных, DU-граф, дерево доминаторов, определение времени жизни переменных, SSA-форма, алгоритм построения DU-графа.

3.5. Проведение оптимизаций по DU-графу, метод нумерации значений, локальные оптимизации потока данных.

3.6. Оптимизации циклических участков программы, дерево циклов, сводимость циклов, цикловые оптимизации.

3.7. Глобальные и межпроцедурные оптимизации. Граф вызова процедур.

3.8. Разрешение конфликтов обращений в память, глобальный межпроцедурный анализ указателей.

3.9. LLVM, компоненты библиотеки LLVM. Компиляторы, основанные на LLVM, особенности реализации промежуточного представления.

3.10. Системы двоичной трансляции, JIT-компиляция.

 

 

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

  1. А.Ахо, Р.Сети, Дж.Ульман, "Компиляторы: принципы, технологии, инструменты", М:"Вильямс", 2001
  2. Steven S.Muchnik, "Advanced Compiler Design And Implementation", Morgan Kaufmann Publishers, 1997
  3. В.Н.Касьянов, "Оптимизирующие преобразования программ", М:"Наука", 1988

 

Материалы лекций:

 

 

Если вы заметили в тексте ошибку, выделите её и нажмите Ctrl+Enter.

МФТИ в социальных сетях

soc-vk soc-fb soc-tw soc-li soc-li soc-yt
Яндекс.Метрика