Первый модуль

Второй модуль

Вопросы итогового контроля

  1. Понятие «архитектура набора команд» (ISA), классификацию машинных архитектур с точки зрения набора команд: CISC, RISC, VLIW, EPIC. Предикация, арность команд, выравнивание кода.
  2. Модели среды исполнения, модели исполняемой программы.
  3. Классификация моделей исполняемых программ, абсолютная программа.
  4. Классификация моделей исполняемых программ, относительная программа.
  5. Классификация моделей исполняемых программ, сегментированая программа. Явная и неявная сегментация.
  6. Машинно-зависимые аспекты реализации системы памяти: выравнивание, оптимизация структурных типов данных, порядок байтов, атомарность доступа.
  7. Машинно-зависимые аспекты реализации системы памяти: кэш, трансляция виртуальных адресов, буфер трансляции.
  8. Системы с множественными адресными пространствами MAS. Поддержка перемещаемых программ в MAS. Позиционно-независимый код или «копирование при записи».
  9. Системы с единственным адресным пространством SAS.
  10. Машинно-зависимые аспекты планирования операций: конвейер, зависимости по данным, порядок команд, развертывание циклов.
  11. Машинно-зависимые аспекты планирования операций: конвейер, зависимости по управлению, политики предсказания переходов, планирование трассы исполнения программы, профилирование.
  12. Принципы построения исполняемой программы: таблицы векторов перехода, разрешение внешних ссылок, GOT.
  13. Принципы компоновки исполняемой программы: статическая, динамическая, позднее связывание (ленивая загрузка).
  14. Архитектура набора команд ISA и проблема эффективного исполнения кода: внеочередное исполнение команд, параллельное исполнение команд, команды с перекрытием, роль количества регистров, глобальные зависимости.
  15. Структуры (базы) данных ассемблера. Алгоритмы распознавания ключевых слов и идентификаторов. Бинарный поиск. Хеширование.
  16. Методы оптимизации распределения регистров. Граф зависимостей, граф интерференций, распределение регистров на основе раскраски графа.
  17. Алгоритмы работы ассемблеров. Многопроходной ассемблер. Глобальная оптимизация на уровне компоновщика.
  18. Макропроцессоры.
  19. Редакторы связей. Глобальная оптимизация.
  20. Загрузчики.
  21. Компиляторы, их структура. Back-end и Front-end компилятора. Промежуточные языки, RTL.
  22. Кросс-платформная разработка программ.