Аннотация:
В данной статье описывается подход к упрощению работы со сквозной функциональностью в исходном коде за счет добавления к среде разработки средств разметки сквозной функциональности. Разметка представлены в виде дерева, отдельные узлы которого могут быть привязаны к блокам кода, обеспечивая быструю навигацию по фрагментам кода, реализующим сквозную функциональность. Привязка узлов дерева к коду осуществляется за счет сохранения в дереве набора информации о фрагментах кода. Сохраняемая информация содержит имя и тип фрагмента кода, а также несколько видов контекстов, которые позволяют однозначно найти фрагмент в коде. Эти контексты позволяют в рамках одной модели работать с кодом на различных языках, как программирования, так и языках разметки, DSL-языках, а также с любым структурированным текстом, например, документацией. Реализация алгоритмов поиска фрагмента по сохраненной информации учитывает возможность внесения изменений в код в процессе разработки, что обеспечивает устойчивость привязки. При небольших изменениях исходного кода фрагмент может быть найден автоматически. В случае более серьезных изменений реализован полуавтоматический поиск при минимальном участии программиста. Исходный код анализируется легковесными парсерами, не полагаясь на инфраструктуру среды разработки. За счет этого достигается возможность работать с широким спектром языков, а также интеграция инструмента в различные среды разработки с минимальными усилиями. В статье представлена модель хранения данных, алгоритмы поиска, а также обзор инструмента, реализующего данную модель.
Ключевые слова:
разделение ответственностей, аспекты, языки программирования, среды разработки.
Реферативные базы данных:
Тип публикации:
Статья
Язык публикации: английский
Образец цитирования:
M. S. Malevannyy, S. S. Mikhalkovich, “Context-based model for concern markup of a source code”, Труды ИСП РАН, 28:2 (2016), 63–78
\RBibitem{MalMik16}
\by M.~S.~Malevannyy, S.~S.~Mikhalkovich
\paper Context-based model for concern markup of a source code
\jour Труды ИСП РАН
\yr 2016
\vol 28
\issue 2
\pages 63--78
\mathnet{http://mi.mathnet.ru/tisp20}
\crossref{https://doi.org/10.15514/ISPRAS-2016-28(2)-4}
\elib{https://elibrary.ru/item.asp?id=26480305}
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/tisp20
https://www.mathnet.ru/rus/tisp/v28/i2/p63
Эта публикация цитируется в следующих 3 статьяx:
Dmitry Sergeevich Drozdov, Stanislav Stanislavovich Mikhalkovich, Proceedings of 26th Scientific Conference “Scientific Services & Internet – 2024”, Proceedings of 26th Scientific Conference “Scientific Services & Internet – 2024”, 2024, 85
А. В. Головешкин, С. С. Михалкович, “Устойчивая алгоритмическая привязка к произвольному участку кода программы”, Программные системы: теория и приложения, 13:1 (2022), 3–33; A. V. Goloveshkin, S. S. Mikhalkovich, “Robust algorithmic binding to arbitrary fragment of program code”, Program Systems: Theory and Applications, 13:1 (2022), 35–62
Alexey Goloveshkin, Stanislav Mikhalkovich, “Using improved context-based code description for robust algorithmic binding to changing code”, Procedia Computer Science, 193 (2021), 239