Preview

Vestnik NSU. Series: Information Technologies

Advanced search

Abstract Machine of the Programming Language for Educational Purposes SYNCHRO

https://doi.org/10.25205/1818-7900-2021-19-4-16-35

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 device 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.

About the Author

L. V. Gorodnyaya
Novosibirsk State University; A. P. Ershov Institute of Informatics Systems of the Siberian Branch of the Russian Academy of Sciences
Russian Federation

Lydia V. Gorodnyaya, Candidate of Sciences (Physics and Mathematics), Associate Professor

Novosibirsk



References

1. Knut D. E. Iskusstvo programmirovaniya [The Art of Computer Programming]. Moscow, Vilyams Publ., 2007, vol. 1, iss 1: MMIX – A RISC Computer for the New Millennium, 160 p. (in Russ.) ISBN 978-5-8459-1163-6

2. Virt N. Postroyeniye kompilyatorov. Moscow, DMK Press, 2010. (in Russ.) ISBN 978-5-94074-585-3, 0-201-40353-6

3. Aylif J. Printsipy postroyeniya bazovoy mashiny. Moscow, Mir, 1973, 119 p. (in Russ.)

4. Henderson P. Funktsional'noye programmirovaniye. Moscow, Mir, 1983, 349 p. (in Russ.)

5. Kotov V. E. MARS: arkhitektury i yazyki dlya realizatsii parallelizma. In: Sistemnaya informatika. Novosibirsk, Nauka, 1991, iss. 1, pp. 174–194. (in Russ.)

6. Irtegov D. V. Vvedeniye v operatsionnyye sistemy. St. Petersburg, BKHV-Peterburg, 2008, 1040 p.: il. (in Russ.) ISBN 978-5-94157-695-1

7. Pepper P., Eksner Yu., Zyudkhold M. Funktsional'nyy pokhod k razrabotke programm s razvitym parallelizmom. On: Sistemnaya informatika. Novosibirsk, Nauka, 1995, iss. 4, pp. 334–360. (in Russ.)

8. Graber M. Vvedeniye v SQL. Moscow, Lori, 1996, 377 p. (in Russ.)

9. Lavrov S. S., Gorodnyaya L. V. Funktsional'noye programmirovaniye. Interpretator yazyka Lisp. Komp'yuternyye instrumenty v obrazovanii, 2002, no. 5, pp. 49–58. (in Russ.)

10. Evans B., Gof Dzh, Nyulend K. Java: optimizatsiya programm. Prakticheskiye metody povysheniya proizvoditel'nosti prilozheniy v JVM. Moscow, Dialektika Publ., 2019, 448 p. (in Russ.) ISBN 978-5-907114-84-5

11. Gorodnyaya L. Method of paradigmatic analysis of programming languages and systems. In: CEUR Workshop Proceedings, 2020, no. 2543, pp. 149–158.

12. On the presentation of the results of the analysis of programming languages and systems. In: CEUR Workshop Proceedings, 2018, no. 2260, pp. 152–166.

13. Cann D. C. SISAL 1.2: A Brief Introduction and tutorial. Preprint UCRL-MA-110620. Law-rence Livermore National Lab. Livermore, California, 1992, May, 128 p.

14. Backus J. Can programming be liberated from the von Neumann style? A functional stile and its algebra of programs. In: Commun. ACM 21, 1978, no. 8, pp. 613–641.

15. Fild A., Harrison P. Funktsional'noye programmirovaniye. Trans., ed. by V. A. Gorbatov. Moscow, Mir, 1993, 638 p. (in Russ.)

16. Gorodnyaya L. V. Osnovy funktsional'nogo programmirovaniya. Moscow, Internet-Universitet Informatsionnykh tekhnologiy, 2004, 272 p. (in Russ.)

17. Deykstra E. Distsiplina programmirovaniya. Moscow, Mir, 1978, 275 p. (in Russ.)

18. Gorodnyaya L. V. Yazyk parallel'nogo programmirovaniya SINKHRO, prednaznachenyy dlya obucheniya. Novosibirsk, 2016, preprint ISI SO RAN № 180, 30 p. (in Russ.)

19. Baranov S. N., Kolodin M. Yu. Fenomen Forta. In: Sistemnaya informatika. Novosibirsk, Nauka, 1995, iss. 4, pp. 193–271. (in Russ.)

20. Lastovetsky A. L. Predvaritel'noye soobshcheniye o yazyke programmirovaniya mpC. In: Voprosy kibernetiki: Prilozheniya sistemnogo programmirovaniya. Moscow, 1995, pp. 20–39. (in Russ.)


Review

For citations:


Gorodnyaya L.V. Abstract Machine of the Programming Language for Educational Purposes SYNCHRO. Vestnik NSU. Series: Information Technologies. 2021;19(4):16-35. (In Russ.) https://doi.org/10.25205/1818-7900-2021-19-4-16-35

Views: 222


Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.


ISSN 1818-7900 (Print)
ISSN 2410-0420 (Online)