Preview

Вестник НГУ. Серия: Информационные технологии

Расширенный поиск

Абстрактная машина языка программирования учебного назначения СИНХРО

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

Аннотация

Статья посвящена ряду решений по организации работы с памятью в учебных языках и системах программирования, нацеленных на обучение подготовке многопоточных программ над общей памятью. Рассмотрение выполнено на материале учебного языка программирования СИНХРО, что позволило анализировать варианты таких решений без ограничений, характерных для традиционных производственных инструментов и устройства стандартных систем программирования. В статье дано определение абстрактной машины и расширение ее системы команд, позволяющее определять поведение программы как распределенной системы из ряда потоков, взаимодействующих в терминах доступа к значениям переменных, расположенных в общей памяти. Описано устройство общей памяти и механизмы доступа к ней отдельных процессов, представляющих собой последовательности выполнения команд, часть из которых являются запросами к общей памяти. В центре внимания удобство отладки небольших программ, используемых для ознакомления с проблемами параллелизма в процессе обучения, когда темп понимания проблем обучаемыми важнее достижения эффективности и производительности учебных программ. Решение проблем отладки программ полезно при изучении методов программирования, а также при исследовании истории языков программирования, сравнения парадигм программирования, потенциала используемых схем и моделей, оценки уровня новизны создаваемых языков программирования, создания методики измерения разных характеристик программ на моделях и выборе критериев практичности создаваемых программ.

При расширении системы команд абстрактной машины учтены принципы функционального программирования как популярной парадигмы на этапе подготовки прототипов и моделей многопоточных программ. Из этих принципов выполнен вывод следствий, позволяющих успешно выбрать элементарные команды, поддерживающие работу с памятью в стиле неизменяемости данных, обратимости действий и транзакций при обработке данных. Для функционального программирования, как и для учебных задач параллельного программирования, умение обеспечить правильность и полноту решений важнее эффективности и производительности полученных программ. Это путь к созданию надежного и безопасного программного обеспечения.

Об авторе

Л. В. Городняя
Новосибирский государственный университет; Институт систем информатики им. А. П. Ершова Сибирского отделения Российской академии наук
Россия

Лидия Васильевна Городняя, кандидат физико-математических наук, доцент

Новосибирск



Список литературы

1. Кнут Д. Э. Искусство программирования. М.: Вильямс, 2007. Т. 1, вып. 1: MMIX – RISC-компьютеры нового тысячелетия. 160 с. ISBN 978-5-8459-1163-6

2. Вирт Н. Построение компиляторов. М.: ДМК Пресс, 2010. ISBN 978-5-94074-585-3, 0-201-40353-6

3. Айлиф Дж. Принципы построения базовой машины. М.: Мир, 1973. 119 с.

4. Хендерсон П. Функциональное программирование. М.: Мир, 1983. 349 с.

5. Котов В. Е. МАРС: архитектуры и языки для реализации параллелизма // Системная информатика. Новосибирск: Наука, 1991. Вып. 1: Проблемы современного программирования. С. 174–194.

6. Иртегов Д. В. Введение в операционные системы. СПб.: БХВ-Петербург, 2008. 1040 с.: ил. ISBN 978-5-94157-695-1

7. Пеппер П., Экснер Ю., Зюдхольд М. Функциональный поход к разработке программ с развитым параллелизмом // Системная информатика. Новосибирск: Наука, 1995. Вып. 4: Методы теоретического и системного программирования. С. 334–360.

8. Грабер М. Введение в SQL. М.: Лори, 1996. 377 с.

9. Лавров С. С., Городняя Л. В. Функциональное программирование. Интерпретатор языка Лисп // Компьютерные инструменты в образовании. 2002. № 5. С. 49–58.

10. Эванс Б., Гоф Дж., Ньюленд К. Java: оптимизация программ. Практические методы повышения производительности приложений в JVM. М.: Диалектика, 2019. 448 с. 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. Gorodnyaya L. 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. Филд А., Харрисон П. Функциональное программирование / Пер. под ред. В. А. Горбатова. М. Мир, 1993. 638 с.

16. Городняя Л. В. Основы функционального программирования. М.: Интернет-университет информационных технологий, 2004. 272 с.

17. Дейкстра Э. Дисциплина программирования. М.: Мир, 1978. 275 с.

18. Городняя Л. В. Язык параллельного программирования СИНХРО, предназначеный для обучения. Новосибирск, 2016. Препринт ИСИ СО РАН № 180. 30 с.

19. Баранов С. Н., Колодин М. Ю. Феномен Форта // Системная информатика. Новосибирск: Наука, 1995. Вып. 4: Методы теоретического и системного программирования. С. 193–271.

20. Ластовецкий А. Л. Предварительное сообщение о языке программирования mpC // Вопросы кибернетики: Приложения системного программирования / Научный совет по комплексной проблеме «Кибернетика» РАН. М., 1995. С. 20–39.


Рецензия

Для цитирования:


Городняя Л.В. Абстрактная машина языка программирования учебного назначения СИНХРО. Вестник НГУ. Серия: Информационные технологии. 2021;19(4):16-35. https://doi.org/10.25205/1818-7900-2021-19-4-16-35

For citation:


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

Просмотров: 226


Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


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