анализ, работу c AST (обход дерева, трансформация), атрибутные грамматики и синтезируемые/наследуемые атрибуты, изучаешь системы типов, семантику программ, чтобы понимать, что означает программа, изучаешь межпроцедурный анализ. Изучаешь алгоритмы статического анализа: анализ потоков данных и анализ потоков управления, абстрактную интерпретацию, ML для статического анализа, изучаешь реализации SOTA статических анализаторов с открытым исходным кодом (вроде ничего не забыл). И через несколько лет вы может быть разработаете статический анализатор, который будет находить проблемы в популярных проектах с высоким уровнем качества кода. А cейчас вы можете сделать расширение для популярной LLM из инструкций для этой LLM и вуаля, 500+ дефектов в CPython и C-расширениях для него. В 2013 году Coverity сделали автоматический анализа кода на предмет наличия проблем безопасности и ошибок в CPython 3.3.2: Если для ранее проанализированных открытых проектов зафиксирован средний уровень дефектов в 0.
Раньше ведь как было: изучаешь теорию языков программирования и формальные методы, формальные грамматики, лексический и синтаксический
23 апреля23 апр
1 мин