Skip to content

Static analysis

Konychev Valera edited this page Feb 8, 2019 · 5 revisions

Статический анализ кода

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

int a;
func(a);

Надо заметить, что реальный статический анализатор проверяет намного больше различных случаев. Что позволяет отловить достаточно много ошибок программистов ещё до этапа компиляции. В нашем образовательном проекте используется clang-tidy, потому что помимо проверки он так же даёт советы по исправлению и улучшению кода. Например, он может найти устаревшие участи кода, которые можно заменить на более надёжные соверменные аналоги:

/home/valerii/workspace/CPP_lessons/1_Lesson/cswap.cpp:8:14: warning: use nullptr [modernize-use-nullptr]
    if (a == NULL || b == NULL)
             ^~~~
             nullptr
/home/valerii/workspace/CPP_lessons/1_Lesson/cswap.cpp:8:27: warning: use nullptr [modernize-use-nullptr]
    if (a == NULL || b == NULL)
                          ^~~~~
                          nullptr

Clang-tidy

Clone this wiki locally