Реалізація та формальний опис стекової віртуальної машини як об’єктно-орієнтованої моделі для вивчення технологій компіляції
DOI:
https://doi.org/10.31498/2225-6733.53.1.2026.359785Ключові слова:
об’єктно-орієнтована модель, стекова віртуальна машина, технології компіляції, асемблер, байт-код, EBNF-нотація, кадр стеку, Frame Pointer, Scala, формальний описАнотація
У роботі наведено результати розробки та апробації об’єктно-орієнтованої моделі стекової віртуальної машини, призначеної для дослідження внутрішніх механізмів трансляції та виконання програмного коду. Програмний продукт реалізовано на мові Scala, що забезпечує високу надійність архітектури за рахунок використання принципів суворої типізації та об'єктної інкапсуляції компонентів системи. Ключовою технологічною особливістю розробки є створення формального опису мови асемблера за допомогою нотації EBNF, що дозволяє детально моделювати етапи лексичного та синтаксичного аналізу. В ході дослідження обґрунтовано багаторівневу архітектуру моделі, яка включає віртуальний процесор із циклом fetch-decode-execute, стек операндів та систему регістрів, серед яких критичне значення має регістр Frame Pointer для управління кадрами функцій. Функціонал моделі базується на наборі з 17 інструкцій варіативної довжини, що забезпечує підтримку складних обчислювальних операцій, логічних розгалужень та рекурсивних викликів. Реалізовано механізми трансформації низькорівневих команд у двійковий байт-код, що дозволяє наочно демонструвати процеси фізичного представлення даних у програмній пам'яті. Експериментальна верифікація системи на прикладі алгоритмів обчислення суми чисел та рекурсивних послідовностей підтвердила повну відповідність стану стеку та регістрів теоретичним принципам роботи стекових процесорів. Впровадження розробленої об’єктно-орієнтованої моделі у навчальний процес дозволило підвищити рівень розуміння технологій компіляції на 30%. Зафіксовано суттєве зростання здатності студентів до самостійної розробки мовних процесорів, оскільки запропонована модель успішно виконує роль проміжної ланки між абстрактною теорією та складними промисловими платформами, такими як JVM. Доведено, що поєднання формального опису граматик із прозорою реалізацією механізму Stack Frame є ефективним інструментом вивчення технологій компіляції, що дозволяє мінімізувати часові витрати на засвоєння низькорівневих аспектів програмування
Посилання
- Compilers: Principles, Techniques, and Tools / Aho A. V., Lam M. S., Sethi R., Ullman J. D. 2nd ed. Boston : Pearson Education, 2007. 1009 p.
- Cooper K. D., Torczon L. Engineering a Compiler. 3rd ed. Boston : Morgan Kaufmann, Elsevier, 2022. 848 p.
- Parr T. Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages. Dallas : Pragmatic Book-shelf, 2010. 274 p.
- Dimitrov D., Penev I. Design of a training compiler for increasing the efficiency of language processors learning. eLearning and Software for Educa-tion : The International Scientific Conference, 3–14 May 2021. 2021. DOI: https://doi.org/10.12753/2066-026x-21-077.
- Penev I., Dimitrov D. Design of a Virtual Machine for Training Compilers. 2021 International Conference Automatics and Informatics (ICAI), Varna, Bulgaria, 30 September 2021 - 02 October 2021. Pp. 1–4. DOI: https://doi.org/10.1109/icai52893.2021.9639831.
- Stamenković S., Jovanović N. A Web-Based Educational System for Teaching Compilers. IEEE Transactions on Learning Technologies. 2024. Vol. 17. Pp. 143–156. DOI: https://doi.org/10.1109/tlt.2023.3297626.
- Fukuda H., Leger P., Figueroa I. A Practical Methodology to Learn Computer Architecture, Assembly Language, and Operating System. Proceedings of the 12th International Conference on Computer Supported Education, 2–4 May 2020. Vol. 1. Pp. 333–340. DOI: https://doi.org/10.5220/0009319503330340.
- Patterson D. A., Hennessy J. L. Computer Organization and Design: The Hardware/Software Interface (MIPS Edition). 5th ed. San Francisco : Morgan Kaufmann, 2013. 800 p.
- Bryant R. E., O’Hallaron D. R. Computer Systems: A Programmer’s Perspective. 3rd ed. Boston : Pearson, 2016. 1120 p.
- Herber T., Weninger M. Trace-Based Bytecode Interpreter Visualization for Compiler Construction Education. 2025 IEEE Working Conference on Software Visualization (VISSOFT), Auckland, New Zealand, 07-08 September 2025. Pp. 13–24. DOI: https://doi.org/10.1109/VISSOFT67405.2025.00010.
- Steingartner W., Sivý I. Enhancing Semantics Learning: A Dynamic Environment for Abstract Language Implementation Education. IPSI Transactions on Internet Research. 2024. Vol. 20, no. 2. Pp. 97–106. DOI: https://doi.org/10.58245/ipsi.tir.2402.10.
- Teixeira S., Ramalho J., Henriques P. EWVM, a Web Virtual Machine to Support Code Generation in Compiler Courses. Open Access Series in Informatics. 2022. Vol. 7. Pp. 7:1–7:9. DOI: https://doi.org/10.4230/oasics.slate.2022.7.
- Virtualization and visualization of virtual memory system for effective teaching–learning / Bhat W., Rashid A., Wani F., Altaf F. Computer Applications in Engineering Education. 2019. Vol. 27. Pp. 1286–1294. DOI: https://doi.org/10.1002/cae.22152.
- Krim N., Porquet-Lupine J. VRV: A Versatile RISC-V Simulator for Education. Proceedings of the 56th ACM Technical Symposium on Computer Science Education, Pittsburgh, USA, 26 February 2025–1 March 2025. Vol. 2. DOI: https://doi.org/10.1145/3641555.3705240.
- Dobravec T. Selected tools for Java class and bytecode inspection in the educational environment. Open Computer Science. 2021. Vol. 11, no. 1. Pp. 43–50. DOI: https://doi.org/10.1515/comp-2020-0170.
- Dobravec T. Java Virtual Machine Educational Tools. 2019 IEEE 15th International Scientific Conference on Informatics, Poprad, Slovakia, 20–22 November 2019. Pp. 383–388. DOI: https://doi.org/10.1109/Informatics47936.2019.9119263.
- Koleshwar G. S. A Deep Dive into Python Execution: CPython Bytecode, PVM, and Online Platforms. International Journal for Research in Applied Science and Engineering Technology (IJRASET). 2025. Vol. 13, iss. I. Pp. 2116–2122. DOI: https://doi.org/10.22214/ijraset.2025.74374.
- Zheng P., Yang J., Lou J., Wang B. Design and application of virtual simulation teaching platform for intelligent manufacturing. Scientific Reports. 2024. Vol. 14. DOI: https://doi.org/10.1038/s41598-024-62072-5.
- Methodology of Implementing Virtual Reality in Education for Industry 4.0 / A. Paszkiewicz et al. Sustainability. 2021. Vol. 13. Article 5049. DOI: https://doi.org/10.3390/su13095049.
- A framework for virtual learning in industrial engineering education: development of a reconfigurable virtual learning factory application / W. Terkaj et al. Virtual Reality. 2024. Vol. 28. Article 148. DOI: https://doi.org/10.1007/s10055-024-01042-8.
##submission.downloads##
Опубліковано
Як цитувати
Номер
Розділ
Ліцензія

Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License.
Журнал "Вісник Приазовського державного технічного університету. Серія: Технічні науки" видається під ліцензією СС-BY (Ліцензія «Із зазначенням авторства»).
Дана ліцензія дозволяє поширювати, редагувати, поправляти і брати твір за основу для похідних навіть на комерційній основі із зазначенням авторства. Це найзручніша з усіх пропонованих ліцензій. Рекомендується для максимального поширення і використання неліцензійних матеріалів.
Автори, які публікуються в цьому журналі, погоджуються з наступними умовами:
1. Автори залишають за собою право на авторство своєї роботи та передають журналу право першої публікації цієї роботи на умовах ліцензії Creative Commons Attribution License, яка дозволяє іншим особам вільно розповсюджувати опубліковану роботу з обов'язковим посиланням на авторів оригінальної роботи та першу публікацію роботи в цьому журналі.
2. Автори мають право укладати самостійні додаткові угоди, які стосуються неексклюзивного поширення роботи в тому вигляді, в якому вона була опублікована цим журналом (наприклад, розміщувати роботу в електронному сховищі установи або публікувати у складі монографії), за умови збереження посилання на першу публікацію роботи в цьому журналі.






