Визначення відповідності тексту алгоритму програми на основі конструктивно-продукційної моделі графа керування
Creators
- 1. Дніпровський національний університет залізничного транспорту імені академіка В. Лазаряна, Ukraine
Description
Мета. Основною метою статті є розробка та програмна реалізація методу визначення відповідності тексту алгоритму програми, представленого у вигляді блок-схеми. Методика. Для зіставлення тексту програми та блок-схеми побудовано математичну модель їх перетворювачів у графове представлення з використанням апарату конструктивно-продукційного моделювання та його методів: спеціалізації, конкретизації, інтерпретації та реалізації. Графове представлення (графи) тексту будується з урахуванням операторів керування, блок-схеми – за json-файлом, що містить опис елементів схеми та їх зв’язків. Для порівняння графів застосовано метод пошуку в ширину з підрахунком кількості однакових вершин. Для програмної реалізації розробленого методу й моделей була застосована технологія об’єктно-орієнтованого програмування та CASE-технології, в основі яких лежить уніфікована мова моделювання UML. Результати. Запропоновано метод, що дозволяє представити текст та блок-схему програми в єдиному форматі орієнтованого графа (графа керування) та виконати оцінку їх відповідності за кількістю однакових вершин. Для його формалізації та автоматизованого використання розроблено конструктивно-продукційні моделі перетворювачів вхідних даних. На основі моделей та методу створено програмний додаток. Наукова новизна. Отримали подальший розвиток методи конструктивно-продукційного моделювання в задачах обробки текстів, написаних штучними мовами. Побудована система конструкторів, що виконує перетворення тексту програм мовою С++ у граф керування. Практична значимість. Результати роботи мають значення для розв’язання таких задач, як зіставлення текстів програм із метою виявлення запозичень, визначення відповідності алгоритмів програм їх програмним реалізаціям із метою поліпшення навичок кодування. Графове представлення, яке продукує розроблена система конструкторів, може бути застосоване для дослідження впливу оптимізації та рефакторингу коду на складність програм із використанням метрик МакКейба.
Files
245666-Article Text-568610-1-10-20211217.pdf
Files
(1.7 MB)
Name | Size | Download all |
---|---|---|
md5:80d98fd1a2a0cd794d33b49732cf8119
|
1.7 MB | Preview Download |
Additional details
Related works
- Is identical to
- Journal article: http://stp.diit.edu.ua/article/view/245666 (URL)
References
- Ivutin, A. N., & Troshina, A. G. (2019). Petri-net based method of parallel programs formal verification. Vestnik of Ryazan State Radio Engineering University, 70, 15-26. DOI: https://doi.org/10.21667/1995-4565-2019-70-15-26 (in Russian)
- Kondratyev, D., Maryasov, I., & Nepomniaschy, V. (2018). The Automation of C Program Verification by Symbolic Method of Loop Invariants Elimination. Modeling and Analysis of Information Systems, 25(5), 491-505. DOI: https://doi.org/10.18255/1818-1015-2018-5-491-505 (in Russian)
- Cormen, Th., Leiserson, Ch., Rivest, R., & Stein, C. (2005). Introduction to Algorithms. Moscow: Vilyams. (in Russian)
- Malyshev, Ye. V., & Smelov, V. V. (2018). Plagiarism detecting algorithms for software code. Proceedings of BSTU, 1(206), 135-138. (in Russian)
- Nikitin, V. D., & Ivanov, A. P. (2018). Development of Methods for Assessing the Similarity of Algorithms Based on Graph Models. Magyar Tudományos Journal, 23, 36-41. (in Russian)
- Sarwar, S., Qayyum, Z. Ul., Safyan, M., Iqbal, M., & Mahmood, Y. (2019). Graphs Resemblance based Soft-ware Birthmarks through Data Mining for Piracy Control. Proceedings of the Institute for System Pro-gramming of the RAS, 31(2), 171-186. DOI: https://doi.org/10.15514/ispras-2019-31(2)-12 (in Russian)
- Shynkarenko, V. I., & Kuropiatnyk, О. S. (2017). Plagiarism detection problems and analysis software tools for its solve. Science and Transport Progress, 1(67), 131-142. DOI: https://doi.org/10.15802/stp2017/94034 (in Russian)
- Khaled, F., & H. Al-Tamimi, M. S. (2021). Plagiarism Detection Methods and Tools: An Overview. Iraqi Journal of Science, 62(8), 2771-2783. DOI: https://doi.org/10.24996/ijs.2021.62.8.30 (in English)
- Kulkarni, S., Govilkar, S., & Amin, D. (2021). Analysis of Plagiarism Detection Tools and Methods. SSRN Elec-tronic Journal, 1, 1-7. DOI: https://doi.org/10.2139/ssrn.3869091 (in English)
- Kuropiatnyk, O., & Shynkarenko, V. (2020). Text Borrowings Detection System for Natural Language Struc-tured Digital Documents. In COLINS 2020. Computational Linguistics and Intelligent Systems. Proceedings of the 4th International Conference on Computational Linguistics and Intelligent Systems (COLINS 2020) (Vol. 2604, pp. 294-305). Lviv, Ukraine. (in Ukrainian)
- Pandit, A. A., & Toksha, G. (2019). Review of Plagiarism Detection Technique in Source Code. In Algorithms for Intelligent Systems. (pp. 393-405). DOI: https://doi.org/10.1007/978-981-15-0633-8_38
- Programforyou: redaktor blok-skhem. Retrieved from https://programforyou.ru/block-diagram-redactor (in Russian)
- Shynkarenko, V. I., & Ilman, V. M. (2014). Constructive-Synthesizing Structures and Their Grammatical Inter-pretations. i. Generalized Formal Constructive-Synthesizing Structure. Cybernetics and Systems Analysis, 50(5), 655-662. DOI: https://doi.org/10.1007/s10559-014-9655-z (in English)
- Shynkarenko, V. I., & Ilman, V. M. (2014). Constructive-Synthesizing Structures and Their Grammatical Inter-pretations. II. Refining Transformations*. Cybernetics and Systems Analysis, 50(6), 829-841. DOI: https://doi.org/10.1007/s10559-014-9674-9 (in English)