-
Notifications
You must be signed in to change notification settings - Fork 13
Static analysis
Статический анализ кода --- проверка исходного кода без его компиляции, если язык программирования компилируемый, и реального исполнения. Статический анализ кода позволяет выявить ошибки в программах, которые с точки зрения синтаксиса языка программирования написаны правильно, но при этом скрее всего являются ошибками, которые могут привести к неправильному и непредсказуемому поведению программы во время исполнения. Например, использование неинециализированных переменных:
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