DOI: 10.17586/1023-5086-2022-89-08-64-75
УДК: 612.84, 612.843.7, 004.93, 621.397.3
Анализ изображений и поиск ошибок в текстах исходного программного кода
Полный текст «Оптического журнала»
Полный текст на elibrary.ru
Публикация в Journal of Optical Technology
Скуратова К.А., Шелепин Е.Ю., Малашин Р.О., Шелепин Ю.Е. Анализ изображений и поиск ошибок в текстах исходного программного кода // Оптический журнал. 2022. Т. 89. № 8. С. 64–75. http://doi.org/10.17586/1023-5086-2022-89-08-64-75
Skuratova K.A., Shelepin E.Yu., Malashin R.O., Shelepin Yu.E. Image analysis and error detection in source software code [in Russian] // Opticheskii Zhurnal. 2022. V. 89. № 8. P. 64–75. http://doi.org/10.17586/1023-5086-2022-89-08-64-75
K. A. Skuratova, E. Yu. Shelepin, R. O. Malashin, and Yu. E. Shelepin, "Image analysis and error detection in source software code," Journal of Optical Technology. 89(8), 476-483 (2022). https://doi.org/10.1364/JOT.89.000476
Предметом исследования являются когнитивные механизмы анализа человеком изображений исходного программного кода и поиск в нём ошибок. Целью работы является изучение влияния профессионального навыка зрительного поиска ошибок в исходном программном коде Python на управление глазодвигательными процессами для последующего моделирования выявленных принципов в системах искусственного интеллекта. Метод. Исследование характеристик движений глаз при поиске человеком ошибок в изображениях программного кода было проведено с использованием технологии слежения за движениями глаз при помощи отечественного комплекса «Нейробюро», обеспечивающего полный комплекс психофизиологических исследований. Испытуемым было предложено выполнить два задания: задание на объяснение программного кода и задание на поиск ошибки в программном коде. Каждое задание содержало 10 стимулов с нормированным по длине и сложности программным кодом на языке Python с применением подсветки синтаксиса. Время выполнения заданий не ограничивалось. В исследовании приняли участие 8 программистов с различным профессиональным опытом (от 1 до 13 лет). Основные результаты. С ростом профессионального навыка анализа изображений человеком, формируются глазодвигательные стратегии, позволяющие более эффективно выполнять задания при минимизации затрат. Данные стратегии заключаются в фрагментации целостного программного кода на отдельные значимые для анализа единицы. Обнаружено, что для более опытных программистов, по сравнению с начинающими программистами, характерно меньшее число фиксаций, меньшая длина пути сканирования, большая амплитуда саккад. Также можно отметить, что при выполнении задания на объяснение программного кода с ростом профессионального навыка увеличивается скорость саккад, а именно крупных, поисковых движений глаз. Показано, что зрительный поиск ошибок в основном определяется распознаванием деталей текста, поиск которых возможен лишь на основе семантики и грамматики языка программирования. Установлено, что чтение текста, а именно программного кода, отличается как от рассматривания натуральных сцен, так и текстов, написанных на естественном языке. Профессиональный опыт минимизирует затраты при данной работе, как и при любом другом виде профессиональной деятельности. Особенность управления движениями глаз при чтении кода происходит под контролем знания языка программирования, понимания контекста, знания семантики и грамматики языка, а не только по пространственно-низкочастотному описанию изображений строк и слов, по которому и вырабатывается навык чтения и узнавания общей конфигурации строк и слов естественного языка. Практическая значимость. Выводы, полученные в данном исследовании, могут быть использованы для объяснения существующихи создания новых (основанных на стратегиях, выработанных в процессе эволюции человека) нейроморфных алгоритмов генерации и исправления программного кода.
распознавание образов, зрительный поиск, зрительный навык, движения глаз, изображения, программные коды
Благодарность:Работа выполнена при поддержке Минобрнауки России в рамках соглашения № 075-15-2020-921 от 13.11.2020.
Коды OCIS: 330.2210, 330.5020, 330.4270
Список источников:1. Isiaka F., Ibrahim A. Page pattern recognition in eye movement validation // International Refereed Journal of Engineering and Science (IRJES). 2014. V. 3. Iss. 8. P. 45–55. www.irjes.com 45 |
2. Lim J.Z., Mountstephens J., Teo J. Eye-tracking feature extraction for biometric machine learning // Front. Neurorobot. 01 February 2022 | https://doi.org/10.3389/fnbot.2021.796895
3. Скуратова К.А., Шелепин Е.Ю., Яровая Н.П. Оптический поиск и зрительный навык // Оптический журнал. 2021. Т. 88. № 12. С. 28–35.
4. Chan F. Tracking eye movements over source code. 2018 [Электронный ресурс]. — Режим доступа: https://digitalcommons.calpoly.edu/cpesp/263/ (дата обращения 05.04.2022)
5. Schulte C. Block model: an educational model of program comprehension as a tool for a scholarly approach to teaching // In Proceedings of the Fourth international Workshop on Computing Education Research. Sydney, Australia. 6–7 September, 2008. P. 149–160.
6. Busjahn T., Bednarik R., Begel A., Crosby M., Paterson J.H., Schulte C., Sharif B., Tamm S. Eye movements in code reading: Relaxing the linear order // In IEEE 23rd International Conference on Program Comprehension. Florence, Italy. 7 September 2015. P. 255–265.
7. Busjahn T., Bednarik R., Schulte C. What influences dwell time during source code reading: analysis of element type and frequency as factors // In Proceedings of the Symposium on Eye Tracking Research and Applications. Safety Harbor, USA. 26–28 March 2014. P. 335–338.
8. Liblit B., Begel A., Sweetser E. Cognitive perspectives on the role of naming in computer programs // In PPIG. 2006. P. 11. Citeseer.
9. Begel A., Vrzakova H. Eye movements in code review // In Workshop on Eye Movements in Programming. Warsaw, Poland. 15 June 2018. P. 1–5.
10. Shelepin Yu.E., Kharauzov A.K., Zhukova O.V., Pronin S.V., Kuprianov M.S., Tsvetkov O.V. Masking and detection of hidden signals in dynamic images // Journal of Optical Technology. 2020. V. 87. № 10. P. 624–632.
11. Gegenfurtner A., Kok E., van Geel K., de Bruin A., Jarodzka H., Szulewski A., van Merriënboer J.J.G. The challenges of studying visual expertise in medical image diagnosis // Medical Education. 2017. V. 51. № 1 P. 97–104.
12. Robins A., Rountree J., Rountree N. Learning and teaching programming: A review and discussion // Computer science education. 2003. V. 13. № 2. P. 137–172.
13. Gilmore D.J., Green T.R.G. Programming plans and programming expertise // The quarterly journal of experimental psychology section A: Human experimental psychology. 1988. V. 40. № 3. P. 423–442.
14. Sharafi Z., Soh Z., Guéhéneuc Y.-G. A systematic literature review on the usage of eye-tracking in software engineering // Information and Software Technology. 2015. V. 67. № 7. P. 79–107.
15. Bauhoff V., Huff M., Schwan S. Distance matters: Spatial contiguity effects as trade-off between gaze switches and memory load // Applied Cognitive Psychology. 2012. V. 26. № 6. P. 863–871.
16. Глезер В.Д. Опознание зрительных образов. Л.: Наука, 1966. 204 с.
17. Campbell F.W., Robson J.G. Application of fourier analyses to the visibility of gratings // Journal of Physiology (London). 1968. V. 197. P. 551–557.
18. Burr D., Morrone C. Constructing stable spatial maps of the world // Perception. 2012. V. 41. P. 1355–1372. DOI:10.1068/p7392
19. Burr D., Ross J. A visual sense of number // Current Biology. 2008. V. 18. P. 425–428.
20. Leonard C.J., Luck S.J. The role of magnocellular signals in oculomotor attentional capture // Journal of Vision. 2011. V. 11 P. 1–12.
21. Snowden D. Complex acts of knowing: paradox and descriptive self‐awareness // Journal of Knowledge Management. 2002. V. 6. № 2. P. 100–111. DOI:10.1108/13673270210424639
22. Rayner K., Binder K., Ashby J., Pollatsek A. Eye movement control in reading: word predictability has little influence on initial landing positions in words //Vision Research. 2001. V. 41. № 7. P. 943–954. DOI:10.1016/S0042-6989(00)00310-2
23. Lamminpiya A.A., Pronin S.V., Shelepin Yu.E. Spatial frequency text filtering for local and global analysis // Journal of Optical Technology. 2018. V. 85. № 8. P. 476–481.
24. Burton G.J., Haig N.D., Moorhead I.R. A self-similar stack model for human and machine vision // Biol. Cybern. 1986. V. 53. P. 397–403.
25. Burt P., Adelson E. The Laplacian pyramid as a compact image code // IEEE Transactions on communications. 1983. V. Com-31. № 4. P. 532–54.
26. Busjahn T., Tamm S. A deeper analysis of AOI coverage in code reading // ETRA '21 Short Papers: ACM Symposium on Eye Tracking Research and Applications. May 2021. Article No.: 31. P. 1–7. DOI:10.1145/3448018.3457422
27. Pinna B., Shelepin E., Deiana K. Chromatic accentuation in Dyslexia-Useful implications for effective assistive technology // Materials of the IEEE International Symposium «Video and Audio Signal Processing in the Context of Neurotechnologies». June 30 — July 2. 2016. St. Petersburg. Russia. P. 34–36.
28. Sarkar A. The impact of syntax colouring on program comprehension // Proceedings of the 26th Annual Conference of the Psychology of Programming Interest Group. Bournemouth, UK. 15–17 July 2015. P. 49–58.
29. Malashin R.O. Principle of least action in dynamically configured image analysis systems // J. Opt. Technol. 2019. V. 86. № 11. P. 678–685.
30. Malashin R.O. Sparsely ensembled convolutional neural network classifiers via reinforcement learning // ICMLT 2021: 2021. 6th International Conference on Machine Learning Technologies. April 2021. Jeju, South Korea. P. 102–110.
31. Tuan Y.-F. Images and mental maps // Annals of the association of American geographers. June 1975. V. 65. № 2. P. 205–213.
32. Brown T.B., Mann B., Ryder N., Subbiah M., Kaplan J., Dhariwal P., Neelakantan A., Shyam P., Sastry G., Askell A., Agarwal S., Herbert-Voss A., Krueger G., Henighan T., Child R., Ramesh A., Ziegler D. M., Wu J., Winter C., Hesse C., Chen M., Sigler E., Litwin M., Gray S., Chess B., Clark J., Berner C., McCandlish S., Radford A., Sutskever I., Amodei D. Language models are few-shot learners. 2020. [Электронный ресурс]. Режим доступа: https://arxiv.org/abs/2005.14165. (дата обращения: 23.04.2022).
33. Chen M., Tworek J., Jun H., Yuan Q., de Oliveira Pinto H. P., Kaplan J., Edwards H., Burda Y., Joseph N., Brockman G., Ray A., Puri R., Krueger G., Petrov M., Khlaaf H., Sastry G., Mishkin P., Chan B., Gray S., Ryder N., Pavlov M., Power A., Kaiser L., Bavarian M., Winter C., Tillet P., Such F. P., Cummings D., Plappert M., Chantzis F., Barnes E., Herbert-Voss A., Guss W. H., Nichol A., Paino A., Tezak N., Tang J., Babuschkin I., Balaji S., Jain S., Saunders W., Hesse C., Carr A.N., Leike J., Achiam J., Misra V., Morikawa E., Radford A., Knight M., Brundage M., Murati M., Mayer K., Welinder P., McGrew B., Amodei D., McCandlish S., Sutskever I., Zaremba W. Evaluating large language models trained on code. 2021. [Электронный ресурс]. Режим доступа: https://arxiv.org/abs/2107.03374 (дата обращения: 23.04.2022).
34. Li Y., Choi D., Chung J., Kushman N., Schrittwieser J., Leblond R., Eccles T., Keeling J., Gimeno F., Dal Lago A., Hubert T., Choy P., de Masson d’Autume C., Babuschkin I., Chen X., Huang P.-S., Welbl J., Gowal S., Cherepanov A., Molloy J., Mankowitz D.J., Robson E.S., Kohli P., de Freitas N., Kavukcuoglu K., Vinyals O. Competition-level code generation with AlphaCode. 2022. [Электронный ресурс]. Режим доступа: https://storage.googleapis.com/deepmindmedia/AlphaCode/competition_level_code_generation_with_alphacode.pdf (дата обращения: 23.04.2022).
35. Fedus W., Zoph B., Shazeer N., Switch transformers: Scaling to trillion parameter models with simple and efficient sparsity. 2021. [Электронный ресурс]. Режим доступа: https://arxiv.org/abs/2101.03961 (дата обращения: 23.04.2022)
36. Du N., Huang Y., Dai A.M., Tong S., Lepikhin D., Xu Y., Krikun M., Zhou Y., Yu A.W., Firat O., Zoph B., Fedus L., Bosma M., Zhou Z., Wang T., Wang Y. E., Webster K., Pellat M., Robinson K., Meier-Hellstern K., Duke T., Dixon L., Zhang K., Le Q.V., Wu Y., Chen Z., Cui C. GLaM: Efficient scaling of language models with mixture-of-experts. 2021. [Электронный ресурс]. Режим доступа: https://arxiv.org/abs/2112.06905 (дата обращения: 23.04.2022).
37. Zoph B., Bello I., Kumar S., Du N., Huang Y., Dean J., Shazeer N., Fedus W. Designing effective sparse expert models. 2022. [Электронный ресурс]. Режим доступа: https://arxiv.org/abs/2202.08906 (дата обращения: 23.04.2022).