Исследовательская группа

Лаборатория языковых инструментов

Реализация символического исполнения и анализа потока данных в статических анализаторах на примере PVS-Studio

March 13

Одной из смежных задач при компиляции кода является его статический анализ с целью выявления потенциальных ошибок на как можно раннем этапе разработки. Статический анализ кода реализуется как компиляторах, так и сторонних вспомогательных инструментах. Являясь одним из разработчиков анализатора PVS-Studio хочется поднять важную и интересную тему символьного выполнения и анализа потока данных.

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

В докладе будут рассмотрена реализация символьного выполнения и анализа потока данных в статическом анализаторе PVS-Studio. Будет рассказано как выполняется анализ условных операторов, циклов и других операторов, как вычисляется диапазон значений переменной в сложных выражениях, содержащих логические, условные и другие операторы.

Докладчик: Илья Иванов, компания PVS-Studio, Тула.