How Data Flow analysis works in a static code analyzer [Russian]

  • Stream 2
  • Intramural
  • 12:10
  • RU

Анализ Data Flow (потоков данных) - технология анализа исходного кода программ, широко используемая в различных development tools: компиляторах, линтерах, IDE. Мы поговорим о нём на примере разработки статического анализатора.
Рассмотрим классификацию и различные виды Data Flow анализа, смежные технологии, взаимодополняющие друг друга и проблемы, возникающие при его разработке, и сюрпризы, которые нам преподносит C++, когда мы пытаемся его проанализировать.
В ходе доклада мы разберём несколько ошибок, найденных в реальных проектах с помощью этой технологии.
Data flow analysis is a technology for source code analysis, widely used in various development tools: compilers, linters, IDE. We'll talk about it exemplifying with design of a static analyzer.
The talk covers classification and various kinds of data flow analysis, neighbouring technologies supporting each other, obstacles arising during development, surprises from C++ language when one tries to analyze the code.
In this talk, some errors, detected in real projects using this technology, are shown in detail.

Presentation

Pavel Belikov

Architect, PVS-Studio, Tula, Russia

Architect at PVS-Studio team. Oversees static analyzer's core development as well as Linux and macOS versions. Uses Visual Studio as well, when it's necessary.

Look The Report Video