Разница между статическим анализом C/C++ и Java кода
Вице-президент компании GrammaTech опубликовал в журнале Electronic Design интересную статью о различии сложности статического анализа C/C++ и Java-программ.
Вместе с тем в его тезисах есть и ряд дискуссионных мест:
В частности, поиск маршрутов (execution path) актуален не только для выявления переполнений буфера, проблема переполнения буфера и вообще memory errors — далеко не единственная проблема, важная для управляемого кода, равно как и класс API Abuse не единственный актуальный для Java-программ. И в управляемом коде со сборщиком мусора, нам все равно никуда не деться от анализа потоков данных (data flow analysis). К примеру, без него весьма сложно надёжно выявлять такой тип дефектов безопасности как hard-coded passwords и hard-coded credentials.