Abstract
The article is devoted to a number of solutions for organizing work with memory in educational languages and programming systems aimed at teaching the preparation of multi-threaded programs over shared memory. The consideration was carried out within the framework of the SYNCHRO programming language for educational purposes, which made it possible to analyze variants of such solutions without the limitations typical for traditional manufacturing tools and devices of standard programming systems. The article gives a clear formulation of an abstract machine and a diagram of a command system that allows you to define the behavior of a program as a distributed system from a number of threads interacting in terms of access to the values of variables located in shared memory. The de-vice of shared memory and mechanisms of access to it by individual processes, which are a sequence of command execution, some of which are requests to shared memory, are described. The focus is on the convenience of debugging small programs used to introduce concurrency problems in the learning process, where the pace of learners’ under-standing of the problems is more important than achieving program efficiency and performance. The solution to this problem is useful when studying programming methods, as well as studying the history of programming languages, comparing programming paradigms, the potential of the schemes and models used, assessing the level of novelty of the programming languages being created, creating a technique for measuring different characteristics of programs on models and choosing criteria for the practicality of the created programs. When choosing a system of commands for an abstract machine, the principles of functional programming were taken into account as a popular paradigm at the stage of preparing prototypes and models of multi-threaded programs. From these principles, the conclusion is drawn of the consequences that allow you to successfully select elementary instructions that support working with memory in the style of data immutability and their transactional processing. For educational tasks in programming, the ability to ensure the correctness and completeness of solutions is more important than the efficiency and productivity of the received programs. This is the path to building reliable and secure software.
Highlights
Со времен появления Венской методики определения языков программирования (ЯП) [1; 2] операционная семантика языка программирования обычно базируется на определении абстрактной машины (АМ), допускающей не слишком трудоемкую реализацию на широком классе конкретных машин
Проблемы многопоточных программ с взаимодействующими потоками ждут своего решения
Техника отладки программ может быть обогащена возможностью привлечения протоколов ранее выполненных вычислений и приведения программ к нормальным формам, удобным для сведения к базовым / стандартным моделям параллельных вычислений
Summary
Аннотация Статья посвящена ряду решений по организации работы с памятью в учебных языках и системах программирования, нацеленных на обучение подготовке многопоточных программ над общей памятью. Рассмотрение выполнено на материале учебного языка программирования СИНХРО, что позволило анализировать варианты таких решений без ограничений, характерных для традиционных производственных инструментов и устройства стандартных систем программирования. В центре внимания удобство отладки небольших программ, используемых для ознакомления с проблемами параллелизма в процессе обучения, когда темп понимания проблем обучаемыми важнее достижения эффективности и производительности учебных программ. При расширении системы команд абстрактной машины учтены принципы функционального программирования как популярной парадигмы на этапе подготовки прототипов и моделей многопоточных программ. Как и для учебных задач параллельного программирования, умение обеспечить правильность и полноту решений важнее эффективности и производительности полученных программ. В. Абстрактная машина языка программирования учебного назначения СИНХРО // Вестник НГУ. Series: Information Technologies, 2021, vol 19, no. 4, pp. 16–35
Published Version (Free)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.