Методы работы и история возникновения анализатора кода PVS-Studio (реклама)

Компания СиПроВер подготовила несколько статей, рассказывающих о внутреннем устройстве и истории создания статического анализатора PVS-Studio, позволяющего автоматизировать выявление ошибок в коде на языках C, C++ и C#.

В первой статье «Как PVS-Studio ищет ошибки: методики и технологии» приводится обзор технологий, используемых для поиска ошибок и уязвимостей в коде. Показано, как та или иная технология позволяет выявлять ошибки в программах. Проверка кода выполняется с использованием графа потока управления (control flow graph) и дерева разбора, для построения которого используется собственный парсер. Для языков C и C++ анализатор выполняет около 340 диагностик, для C# — 120. В будущем не исключается появление поддержки Objective-C или Java.

Для определения ошибок применяются такие технологии, как анализ на основе сопоставления с типовыми шаблонами ошибочного кода; вычисление полной информации о типах всех переменных и выражений на основе семантической модели; аннотирование методов для получения расширенной информации об используемых методах; проверка диапазонов и переполнений через определение значений переменных при помощи механизма символьного выполнения; анализ потока данных для вычисления ограничений значений переменных при обработке различных конструкций языка. В качестве тестового полигона при разработке PVS-Studio осуществляется проверка кода различных открытых проектов. На данный момент проверено около 270 открытых проектов, в которых выявлено более 10 тысяч ошибок.

Во второй статье «Как 10 лет назад начинался проект PVS-Studio» подводятся промежуточные итоги в развитии анализатора PVS-Studio и рассказывается о том как начинался и развивался проект. В настоящее время в компании СиПроВер, разрабатывающей PVS-Studio, работает 24 человека, разработка ведётся в городе Тула.

Полный текст статьи читайте на OpenNet