4 УДК 004.41 М. В. Зубов, А. Н. Пустыгин, Е. В. Старцев ЧИСЛЕННОЕ МОДЕЛИРОВАНИЕ АНАЛИЗА ИСХОДНОГО КОДА С ИСПОЛЬЗОВАНИЕМ ПРОМЕЖУТОЧНЫХ ПРЕДСТАВЛЕНИЙ Для выполнения статического анализа предложено использовать универсальные многоуровневые промежуточные представления. <...> Для анализа архитектуры проекта разработано представление уровня классов, а для анализа функциональных модулей – потока управления. <...> Для решения задач извлечения информации из исходного текста и предложения рефакторинга был составлен список анализов, основывающихся на подходе совместного использования нескольких представлений. <...> Для реализации анализов были составлены математические модели, формализующие их работу. <...> Для двух анализов были предложены модели на основе пороговых функций, а также модели для вычисления самих порогов. <...> Выбранные анализы были реализованы на основе предложенных моделей в виде утилит-анализаторов. <...> В качестве основы для тестирования и практической проверки анализаторов выступили крупные open-source проекты и собственный код. <...> Так как представления и полученные анализаторы – универсальные, то использовались проекты на языках Java и Python. <...> По каждому проекту были посчитаны величины метрик, что позволило получить информацию о среднем размере компоненты наследования и о зависимости функциональной компоненты. <...> Ряд метрик наглядно показал различия в подходах к программированию в языках Java и Python. <...> Для анализов, использующих пороговые функции, были смоделированы и рассчитаны оптимальные значения порога для выбранных проектов. <...> Реализованные анализаторы, помимо практической ценности, демонстрируют также возможность и эффективность использования промежуточных представлений, предложенных ранее. <...> Ключевые слова: статический анализ, промежуточное представление, численное моделирование, рефакторинг, граф потока управления. <...> Введение Статический анализ исходного кода служит для автоматизации задач разработки программного <...>