RUS  ENG
Полная версия
ЖУРНАЛЫ // Программные системы: теория и приложения // Архив

Программные системы: теория и приложения, 2022, том 13, выпуск 1, страницы 3–33 (Mi ps390)

Математические основы программирования

Устойчивая алгоритмическая привязка к произвольному участку кода программы

А. В. Головешкин, С. С. Михалкович

Южный федеральный университет, Ростов-на-Дону, Россия

Аннотация: При работе над задачей программист наиболее активно взаимодействует с конечным набором фрагментов кода. Информация об их расположении важна для быстрого перемещения между ними, для других разработчиков и как разновидность документации. Интегрированные среды разработки (IDE) позволяют связывать метки с участками кода, просматривать список меток и использовать их для быстрой навигации, однако связь между меткой и помеченным местом может теряться при редактировании кода, особенно при изменении за пределами IDE.
В предыдущих работах авторами предлагается интегрируемый в IDE инструмент, позволяющий устойчиво к изменению кода помечать крупные синтаксические сущности программы («привязываться» к ним). Описание помечаемого элемента строится по абстрактному синтаксическому дереву (АСД) программы и используется для алгоритмического поиска этого элемента в отредактированном позднее коде. Поиск осуществляется с успешностью от 99 до 100%.
Целью настоящей работы является устойчивая алгоритмическая привязка к произвольному участку кода. Для привязки к однострочному фрагменту кода предложены расширение модели, описывающей помечаемый фрагмент, и дополнительный алгоритм поиска. Введена необходимая формализация и предложен алгоритм встраивания в АСД узлов, соответствующих многострочным фрагментам; показано, что в результате такого встраивания не нарушается корректность АСД. В коде трёх крупных проектов на языке C# произведены привязки к случайно выбранным строкам. Ручной проверкой результатов поиска этих строк в отредактированном коде подтверждено, что привязка устойчива к редактированию кода.

Ключевые слова и фразы: разметка кода, алгоритмическая привязка к коду, разработка программного обеспечения, абстрактное синтаксическое дерево, оценка похожести кода.

УДК: 004.4’23+004.415+004.02
ББК: 32.973.3

MSC: Primary 68U99; Secondary 68W05

Поступила в редакцию: 28.12.2021
Подписана в печать : 19.02.2022

DOI: 10.25209/2079-3316-2022-13-1-3-33


 Англоязычная версия: , 2022, 13:1, 35–62

Реферативные базы данных:


© МИАН, 2024