Работа с данными в учебном языке программирования Синхро

Бесплатный доступ

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

Еще

Дисциплина доступа к памяти, функциональное программирование, многопоточные программы, неизменяемость данных, восстановление данных, освобождение памяти

Короткий адрес: https://sciup.org/147240876

IDR: 147240876   |   DOI: 10.14529/cmse230205

Список литературы Работа с данными в учебном языке программирования Синхро

  • Городняя Л.В. Язык параллельного программирования СИНХРО, предназначенный для обучения. Новосибирск, Препринт ИСИ СО РАН № 180, 2016. 30 с.
  • Городняя Л.В. О курсе «Начала параллелизма» // Ершовская конференция по информатике, секция «Информатика образования», Новосибирск, 27 июля 2011. С. 51-54.
  • Воеводин В.В. Параллельные вычисления. СПб.: БХВ-Петербург, 2002. 608 с.
  • Хоар Ч. Взаимодействующие последовательные процессы. Издательство «Мир», 1989. 264 с.
  • McCarthy J. LISP 1.5 Programming Manual. Cambridge: The MIT Press, 1963. 106 p. DOI: 10.7551/mitpress/5619.001.0001.
  • Backus J. Can programming be liberated from the von Neumann style? A functional stile and its algebra of programs // Commun. ACM. 1978. Vol. 21, no. 8. P. 613-641. DOI: 10.1145/359576.359579.
  • Хендерсон П. Функциональное программирование. M.: Мир, 1983. 349 с.
  • Лавров С.С. Функциональное программирование // Компьютерные инструменты в образовании. 2002. № 2-4. С. 42-52.
  • Лавров С.С., Городняя Л.В. Функциональное программирование. Принципы реализации языка Лисп // Компьютерные инструменты в образовании. 2002. № 5. С. 49-58.
  • Городняя Л.В. Основы функционального программирования. М.: Интернет-Университет Информационных технологий, 2004. 272 с.
  • Городняя Л.В. Первые реализации языка Lisp в СССР // Материалы второй Международной конференции «Развитие вычислительной техники и ее программного обеспечения в России и странах бывшего СССР», SoRuCom-2011, Великий Новгород, 12-16 сентября 2011. С. 95-100.
  • Сапп D.C. SISAL 1.2: A Brief Introduction and tutorial. Preprint UCRL-MA-110620. Lawrence Livermore National Lab., Livermore, California, May, 1992. 128 p.
  • Бурдонов И.Б., Косачев А.С. Семантики взаимодействия с отказами, дивергенцией и разрушением. Часть 2. Условия конечного полного тестирования // Вестник Томского государственного университета. 2011. Т. 2, № 15.
  • Koopman Р., Michels S., Plasmeijer R. Dynamic Editors for Well-Typed Expressions // Trends in Functional programming - 22nd International Symposium, 22nd International Symposium, TFP 2021, Virtual Event, February 17-19, 2021. Revised Selected Papers. Vol. 12834. Springer, 2021. P. 44-66. LNCS. DOI: 10.1007/978-3-030-83978-9_3.
  • Erann Gat Lisp as an Alternative to Java. URL: https://flownet.com/gat/papers/ lisp-java.pdf (дата обращения: 05.04.2023).
  • Иртегов Д.В. Введение в операционные системы. СПб.: БХВ-Петербург, 2008. 1040 с.
  • Кнут Д.Э. Искусство программирования, том 1, выпуск 1. MMIX — RISC-компьютеры нового тысячелетия. М.: Вильямс, 2017. 160 с.
  • Вирт Н. Построение компиляторов. М.: ДМК Пресс, 2010.
  • Айлиф Дж. Принципы построения базовой машины. М.: Мир, 1973. 119 с.
  • Эванс Б., Гоф Дж., Ньюленд К. Java: оптимизация программ. Практические методы повышения производительности приложений в JVM. М.: Диалектика, 2019. 448 с.
  • Городняя Л.В. Абстрактная машина языка программирования учебного назначения СИНХРО // Вестник НГУ. Серия: Информационные технологии. 2021. Т. 19, № 4. С. 16-35.
  • Грабер М. Введение в SQL. М.: Лори, 1996. 337 с.
  • Левин В.К. Отечественные суперкомпьютеры семейства МВС. URL: http: //parallel. ru/mvs/levin.html (дата обращения: 05.04.2023).
Еще
Статья научная