ФРТК
Rambler's Top100
Физтех-Портал
Письмо редакторамПочта ФРТКРасписание занятий Расписание экзаменовФорумКарта сайта
Поиск
  Разделы сайта

 Голосование
Нужна ли на сайте возможность оставлять комментарии к статьям при помощи сервиса vkontakte.ru взамен текущего варианта?

Да
Нет, оставьте так
Мне все равно

Результаты
Архив голосований
 Материалы сервера
Версия для печати
Опубликовано: 09.12.2011

«Оптимизация программного кода» (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

 

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

 

 


наверх | на главную
 Discuss it
Add your comment
Author
Subject
Message