Андрей Карпов, сотрудник компании «Системы программной верификации», рассказал о пользе от использования инструментов статического анализа кода. Статический анализ — это методология выявления ошибок в исходном тексте программы, основанная на просмотре кода программистом, помеченного статическим анализатором там, где потенциально может находиться ошибка.
Многие относятся к статическому анализу как к устаревшему и не актуальному методу. Действительно, существует ряд моментов, из-за которых кажется, что статический анализ приносил пользу раньше, когда средства разработки были намного менее функциональны. Однако если отбросить устаревшее, то оказывается, что методология статического анализа по-прежнему позволят существенно сократить цену устранения многих дефектов, за счет их обнаружения еще на стадии конструирования (кодирования). Более того, развитие языков, появление таких технологий программирования как OpenMP, увеличение среднего размера проекта делают применение статических анализаторов все более привлекательным для контроля качества проекта.
Устаревание стандартов кодирования и статический анализ кода (Андрей Карпов на ADD-2010)
Доклад был посвящен анализу C++ кода. Большинство ошибок связано с указателями. Нам их проблемы не понять, а им наши.
Запомнилось: пишете на C++ — у вас ошибки.
Проводил обзор утилит для статического анализа кода на C++, и сам является автором утилиты. Приводил примеры ошибок.
Больше особо ничего не вспоминается, наверное я уже далек от C++ -specific проблем.
Устаревание стандартов кодирования и статический анализ кода (Андрей Карпов на ADD-2010)
С первых слов вспомнил докладчика, он был на SECR 2009. Тогда доклад назывался Ранняя диагностика ошибок в параллельных программах, но общее ощущение, что новый доклад о том же.
В общем, компания разрабатывает статический анализатор кода для C/C++. И в основном рассказывают, какие ошибки умеют ловить на примерах.
Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».