Лекции по оптимизирующим компиляторам

В последние несколько месяцев занимался довольно новым для себя делом - читал лекции по курсу «Оптимизирующие компиляторы». Раньше мне не приходилось читать лекции (ну или почти не приходилось), да и предмет не самый распространённый. В общем о том что получилось, что хочется дополнить и исправить расскажу ниже.

Сам по себе курс длится два семестра, я читаю только первый. В нём предполагается рассказать в целом про оптимизирующие компиляторы и сами оптимизации. Курс был составлен на основе моих конспектов этого курса, прочитанного в МФТИ в 2013 году.

Теперь про содержимое самого курса. Сейчас он состоит из 11 лекций:

  1. Введение в оптимизирующие компиляторы;
  2. Введение в теорию языков и автоматов. Лексический анализ;
  3. Введение в теорию языков и автоматов. Синтаксический анализ;
  4. Алгоритмы на графах, используемые в компиляторах;
  5. Структуры данных в оптимизирующих компиляторах;
  6. Оптимизации управления;
  7. Потоковые оптимизации;
  8. Цикловые оптимизации;
  9. Цикловые оптимизации (часть 2). Оптимизации памяти;
  10. Анализ указателей;
  11. Планирование кода. Межпроцедурные оптимизации.

Я хочу дорабатывать данный курс. Пока мне видятся не лучшими решениями следующие вещи:

Есть ещё некоторые замечания по каждой лекции в отдельности, но об этом я расскажу когда (если) выложу слайды.

Ещё есть масса тем, про которые или не рассказано ничего, или сказано очень мало:

В общем сейчас у меня появились небольшие наработки по данному курсу, есть что и куда пилить. Но хотелось бы узнать у сообщества: что ещё следует читать в курсе оптимизирующих компиляторов, возможно кто-то знает удачные примеры таких курсов? /p>