Сборники трудов ИСП РАН


Поиск семантических ошибок, возникающих при некорректной адаптации скопированных участков кода

Севак Саргсян (ИСП РАН, Москва)

Аннотация

В статье предлагается новый метод поиска семантических ошибок, возникающих при неправильном копировании исходного кода в процессе разработки ПО. Метод состоит из двух основных этапов. На первом этапе производится поиск клонов кода на основе лексического анализа программы. Найденные идентичные последовательности лексем фильтруются путем частичного разбора. После чего в них остаются целостные конструкции, допускаемые языком программирования. На втором этапе производится анализ найденных клонов  с целью обнаружения  допущенных ошибок при копировании. Для этого строится и анализируется граф зависимостей программы (Program Dependence Graph - PDG). Предложенный подход реализован в компиляторной инфраструктуре LLVM/Clang, что позволяет эффективным образом производить анализ, во время компиляции проекта. Найденные ошибки выдаются в виде предупреждений для разработчика.  В статье приводится результаты анализа ядра Linux 2.6 и Android 4.3.  Инструмент обеспечивает точность выше 65%.

Ключевые слова

семантический анализ, семантические ошибки, поиск клонов, PDG, LLVM

Издание

Труды Института системного программирования РАН, том 27, вып. 2, 2015, стр. 93-104.

ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).

DOI: 10.15514/ISPRAS-2015-27(2)-6

Полный текст статьи в формате pdf Вернуться к содержанию тома