В новом выпуске инженеры рассказывают о том, с чего начиналась разработка статического анализатора PVS-Studio и как работает команда сегодня.
Как устроен статический анализ и в чем главные отличия от линтера и фронтенда компилятора? Почему PVS-Studio не использует LLVM? Для каких диагностик важен Data-Flow анализ и насколько тяжело пока обходиться без CFG? Что нужно знать и уметь, чтобы попасть на работу в PVS-Studio? Что регулирует ГОСТ на статический анализ и правда ли он помогает в построении процессов? Разбираемся в этих вопросах в пятнадцатом выпуске «Битовых масок».
Видеоверсия выпуска на YouTube: https://youtu.be/fYWW5HRn9aY
✅Подписывайтесь на Telegram-канал подкаста: https://t.me/+bx50QfUlw4pkZDEy
🔹Станьте частью команды YADRO! https://careers.yadro.com
0:00 — Тизер
1:08 — Представление Андрея и Юрия
2:28 — Знакомство с программированием
6:50 — Поиск кадров в Туле
18:12 — С чего началась работа PVS-Studio
22:08 — Как Юрий пришел в разработку статических анализаторов
23:33 — Конкуренты PVS-Studio
25:15 — Статистический анализ
26:45 — Сравнение с clang-tidy
27:44 — Почему не используется LLVM
29:31 — Любимые и нелюбимые компиляторы
32:02 — Еще причины не использовать LLVM
33:44 — Ошибки в компиляторах
35:10 — Как компиляторы уменьшают количество ошибок
36:36 — Проблема с лямбда-функцией
37:48 — Стоит ли проверять все варианты компиляторов
39:59 — Разница между компилятором и статическим анализатором
41:13 — Этапы статического анализа и дополнительная метаинформация
47:53 — Перенос диагностик из статического анализа в компиляторы
51:06 — Сравнение с другими статическими анализаторами
54:31 — Внутреннее устройство PVS-Studio и самые сложные части
1:05:17 — Что можно улучшить в C++ и почему PVS-Studio написан на C++
1:08:51 — Диагностики в PVS-Studio
1:13:53 — Межпроцедурный и межмодульный анализы
1:15:22 — Data-Flow анализ
1:24:12 — ГОСТ на статический анализ кода
1:29:59 — Undefined behavior
1:34:52 — Появятся ли новые ошибки при обновлении компилятора
1:36:46 — Статический анализ для встраиваемого ПО
1:40:48 — Работа со сторонними библиотеками
1:45:05 — Диагностики для оптимизации кода
1:51:51 — Диагностики, специфичные для архитектуры
1:52:55 — Удаленные диагностики
1:54:06 — Планы на будущее PVS-Studio
1:55:28 — Заключение