|
Математические основы программирования
Устойчивая алгоритмическая привязка к произвольному участку кода программы
А. В. Головешкин, С. С. Михалкович Южный федеральный университет, Ростов-на-Дону, Россия
Аннотация:
При работе над задачей программист наиболее активно взаимодействует с конечным набором фрагментов кода. Информация об их расположении важна для быстрого перемещения между ними, для других разработчиков и как разновидность документации. Интегрированные среды разработки (IDE) позволяют связывать метки с участками кода, просматривать список меток и использовать их для быстрой навигации, однако связь между меткой и помеченным местом может теряться при редактировании кода, особенно при изменении за пределами IDE.
В предыдущих работах авторами предлагается интегрируемый в IDE инструмент, позволяющий устойчиво к изменению кода помечать крупные синтаксические сущности программы («привязываться» к ним). Описание помечаемого элемента строится по абстрактному синтаксическому дереву (АСД) программы и используется для алгоритмического поиска этого элемента в отредактированном позднее коде. Поиск осуществляется с успешностью от 99 до 100%.
Целью настоящей работы является устойчивая алгоритмическая привязка к произвольному участку кода. Для привязки к однострочному фрагменту кода предложены расширение модели, описывающей помечаемый фрагмент, и дополнительный алгоритм поиска. Введена необходимая формализация и предложен алгоритм встраивания в АСД узлов, соответствующих многострочным фрагментам; показано, что в результате такого встраивания не нарушается корректность АСД. В коде трёх крупных проектов на языке C# произведены привязки к случайно выбранным строкам. Ручной проверкой результатов поиска этих строк в отредактированном коде подтверждено, что привязка устойчива к редактированию кода.
Ключевые слова и фразы:
разметка кода, алгоритмическая привязка к коду, разработка программного обеспечения, абстрактное синтаксическое дерево, оценка похожести кода.
Поступила в редакцию: 28.12.2021 Подписана в печать : 19.02.2022
Образец цитирования:
А. В. Головешкин, С. С. Михалкович, “Устойчивая алгоритмическая привязка к произвольному участку кода программы”, Программные системы: теория и приложения, 13:1 (2022), 3–33; Program Systems: Theory and Applications, 13:1 (2022), 35–62
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/ps390 https://www.mathnet.ru/rus/ps/v13/i1/p3
|
|