В.И. Зорин1, Е.К. Липачёв2
1 КНИТУ-КАИ (г. Казань, Россия)
2 КФУ (г. Казань, Россия)
2 Университет Иннополис (г. Иннополис, Россия)
1 addefan@mail.ru, 2 elipachev@gmail.com
Постановка проблемы. Необходима эффективная система кросс-языкового поиска семантически близких фрагментов программного кода, поскольку существующие решения, как правило, поддерживают ограниченное число языков программирования, а также слабо учитывают одновременно и синтаксическое, и семантическое содержание программного кода.
Цель. Разработать метод вычисления меры сходства фрагментов программного кода, основанный на выявлении синтаксических и семантических характеристик кода и обеспечивающий сопоставимость между разными языками программирования.
Результаты. Предложен метод вычисления меры сходства фрагментов программного кода. Отмечено, что метод основан на векторизации фрагментов с использованием моделей машинного обучения. Экспериментально подтверждена высокая эффективность моделей UniXcoder и CodeBERT для выявления семантических кросс-языковых клонов. Разработан и валидирован алгоритм определения языка программирования на основе зарезервированных слов.
Практическая значимость. Программный инструмент поиска близких фрагментов кода, реализованный по представленному в работе методу, может использоваться для кросс-языкового поиска в пространстве программных кодов. Планируется интеграция программного инструмента в цифровую экосистему OntoMath цифровой математической библиотеки Lobachevskii-DML.
Зорин В.И., Липачёв Е.К. Метод вычисления меры сходства фрагментов программного кода // Системы высокой доступности. 2026. Т. 22. № 1. С. 47−50. DOI: https://doi.org/10.18127/j20729472-202601-09
- Zhou S. et al. What Is the Impact of Releasing Code With Publications? IEEE Control Systems. 2024. V. 44 (4). P. 38–46. DOI: https://doi.org/10.1109/MCS.2024.340288
- Zakeri M., Parsa S., Ramezani M., Roy C., Ekhtiarzadeh M. A systematic literature review on source code similarity measurement and clone detection. Journal of Systems and Software. 2023. V. 204 (3). P. 111796. DOI: https://doi.org/10.1016/j.jss.2023.111796
- Vislavski T. et al. LICCA: A tool for cross-language clone detection. IEEE Int. Conf. on Software Analysis. 2018. P. 512–516. DOI: https://doi.org/10.1109/SANER.2018.8330250
- Nafi K.W. et al. CLCDSA: Cross Language Code Clone Detection. IEEE/ACM Int. Conf. (ASE). 2019. P. 1026–1037. DOI: https://doi.org/10.1109/ASE.2019.00099
- Mathew G., Stolee K.T. Cross-language code search using static and dynamic analyses. ESEC/FSE 2021. 2021. P. 205–217. DOI: https://doi.org/10.1145/3468264.3468538
- Tao C., Zhan Q., Hu X., Xia X. C4: contrastive cross-language code clone detection. ICPC '22. 2022. P. 413–424. DOI: https://doi.org/10.1145/3524610.3527911
- Feng Z. et al. CodeBERT: A Pre-Trained Model for Programming and Natural Languages. EMNLP 2020. P. 1536–1547. DOI: https://doi.org/10.18653/v1/2020.findings-emnlp.139
- Guo D. et al. GraphCodeBERT: Pre-training Code Representations with Data Flow. arXiv:2009.08366. 2020. DOI: https://doi.org/10.48550/arXiv.2009.08366
- Guo D. et al. UniXcoder: Unified Cross-Modal Pre-training for Code Representation. Proc. of the Association for Computational Linguistics. 2022. P. 7212–7225. DOI: https://doi.org/10.18653/v1/2022.acl-long.499
- Svajlenko J., Roy C.K. BigCloneEval: A Clone Detection Tool Evaluation Framework with BigCloneBench. ICSME. 2016. P. 596–600. DOI: https://doi.org/10.1109/ICSME.2016.62
- Zorin V.I. Programming Language Detection Dataset. Zenodo. 2025. DOI: https://doi.org/10.5281/zenodo.15661548
- Elizarov A. et al. Digital OntoMath Ecosystem Tools for Managing and Developing Mathematical Knowledge. LNNS. 2024. V. 912. P. 110–117. DOI: https://doi.org/10.1007/978-3-031-53488-1_13
- Елизаров А.М., Кириллович А.В., Липачёв Е.К., Невзорова О.А. Цифровая экосистема OntoMath как подход к построению пространства математических знаний // Электронные библиотеки. 2023. Т. 26. № 2. С. 154–202. DOI: https://doi.org/10.26907/1562-5419-2023-26-2-154-202

