Материалы курсов по статическому анализу

Архив с лекциями можно скачать здесь. Слайды по инструментам Valgrind и санитайзерам (вопросы 11-13) можно взять тут.

На экзамене можно ожидать устных вопросов по тому, что рассказывалось на лекциях.

Примерный список вопросов:

  1. Применения статического анализа. Актуальность поиска ошибок в программах, возможные методы. Понятия статического и динамического анализа программ. Ошибки, допускаемые анализатором. Выделение ошибочных ситуаций, причины появления различных ситуаций для одного класса ошибок.
  2. Представления программы, подвергаемые анализу. Анализ программы на уровне абстрактных синтаксических деревьев. Примеры ошибочных ситуаций.
  3. Анализ потока данных. Потоковая чувствительность и нечувствительность. Итеративный анализ, анализ на основе SSA-представления. Отслеживание свойств значений.
  4. Абстрактная интерпретация. Интервальный анализ.
  5. Чувствительность к путям. Символьное выполнение. Символьное выполнение с объединением состояний. Применения к детекторам переполнения буфера и разыменования нулевого указателя.
  6. Межпроцедурный анализ. Подходы к организации межпроцедурного анализа. Контекстная чувствительность. Межпроцедурный анализ на основе резюме. Применения к детекторам переполнения буфера и разыменования нулевого указателя.
  7. Проблемы создания промышленного анализатора (мониторинг сборки, построение внутреннего представления, работа с результатами анализа и др.).
  8. Особенности анализа языков С# и Java.
  9. Статический анализ для понимания программ.
  10. Поиск клонов кода статическим анализом.
  11. Динамическая двоичная трансляция. Инфраструктура Valgrind.
  12. Инструмент memcheck пакета Valgrind.
  13. Инструментирование исходного кода программ в процессе компиляции. Инструменты-санитайзеры в компиляторах GCC и LLVM. Address Sanitizer, Memory Sanitizer, Thread Sanitizer.
  14. Анализ производительности программ: выбор способа измерения, способа моделирования, принципы организации экспериментов, выбор входных данных, получение интегральной оценки (усреднение).

Leave a Reply