Ареальные типы данных в инструментальном подходе к программированию

Обложка

Цитировать

Полный текст

Аннотация

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

Об авторах

Дмитрий Викторович Дагаев

ООО "СКАДИ"

Email: dvdagaev@oberon.org
ORCID iD: 0000-0003-0343-3912
Генеральный директор;

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

  1. Mansi Dhirajsinh Parmar, Sarthavi Parmar. Survey on Concept of Object-Oriented Programming. International Journal of Scientific Research in Computer Science Engineering and Information Technology. 2024. Vol. 10, No. 2. P. 427-431. doi: 10.32628/CSEIT243647. EDN: AMCTWA.
  2. West D. Object Thinking. Redmond: Microsoft Press, 2004.
  3. Вирт Н. Алгоритмы и структуры данных. М.: ДМК-Пресс, 2016.
  4. Дагаев Д.В. Инструментальный подход к программированию в системе МультиОберон // Программные системы и вычислительные методы. 2024. № 1. С. 31-47. doi: 10.7256/2454-0714.2024.1.69437 EDN: WVZVVU URL: https://nbpublish.com/library_read_article.php?id=69437
  5. Дагаев Д.В. Ограничительная семантика языка в системе МультиОберон // Программные системы и вычислительные методы. 2023. № 1. С. 26-41. doi: 10.7256/2454-0714.2023.1.36217 EDN: IWIODR URL: https://nbpublish.com/library_read_article.php?id=36217
  6. Rajive J., Ph.D. Data-Oriented Architecture: A Loosely-Coupled Real-Time SOA. Real-Time Innovations, Inc., 2007.
  7. Hosking A., Nystrom N., Cutts Q., Brahnmath K. Optimizing the read and write barriers for orthogonal persistence // Advances in Persistent Object Systems / Morrison J., Atkinson M. (Eds.). San Francisco: Morgan Kaufmann, 1999. P. 11.
  8. Lefort A. A Support for Persistent Memory in Java. Computer science. Institut Polytechnique de Paris, 2023. English. ffNNT : 2023IPPAS001.
  9. Bläser L., Russo C., Greif G., Vandersmith R., Ibrahim J. Smarter Contract Upgrades with Orthogonal Persistence // Proceedings of the 16th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages (VMIL '24). Pasadena, CA, USA, 2024. P. 11.
  10. Вирт Н., Гуткнехт Ю. Разработка операционной системы и компилятора. Проект Оберон. М.: ДМК-Пресс, 2015.
  11. Crelier R. OP2: A Portable Oberon Compiler. ETH, Departement Informatik, 1990. P. 32-34.
  12. Леоненков А.В. Самоучитель UML. 2-е изд., перераб. и доп. СПб.: БХВ-Петербург, 2006. P. 150.
  13. Гамма Э., Хэлм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. СПб.: Питер, 2001.
  14. Мартин Р. Чистая архитектура. Искусство разработки программного обеспечения. СПб.: Питер, 2022.
  15. Мартин Р. Идеальный программист. Как стать профессионалом разработки ПО. СПб.: Питер, 2022.
  16. Musser D.R., Stepanov A.A. Generic Programming // Proceedings of the International Symposium ISSAC'88 on Symbolic and Algebraic Computation. New York: Springer-Verlag, 1988. P. 13-25.
  17. Roynard M. Generic programming in modern C++ for Image Processing. Signal and Image Processing. Sorbonne Université, 2022. English. ffNNT : 2022SORUS287ff.
  18. Дагаев Д.В. О разработке Оберон-системы с заданными свойствами эргодичности // Труды ИСП РАН. 2020. Т. 32, вып. 6. С. 67-78. doi: 10.15514/ISPRAS-2020-32(6)-5. EDN: HBGGIK.
  19. Дагаев Д.В. Исполняющая машина автоматных программ // Научно-технический вестник информационных технологий, механики и оптики. 2021. Т. 21, № 4. С. 525-534. doi: 10.17586/2226-1494-2021-21-4-525-534. EDN: MJZXQZ.
  20. Lo S.K., Lu Q., Zhu L., Paik H.-Y., Xu X., Wang C. Architectural patterns for the design of federated learning systems // Journal of Systems and Software. 2022. Vol. 191. P. 357.
  21. Ali H.M., Hamza M.Y., Rashid T.A. Exploring Polymorphism: Flexibility and Code Reusability in Object-Oriented Programming // Proceedings of the 4th International Conference on Recent Innovation in Engineering (ICRIE 2023). University of Duhok, College of Engineering, 13th-14th September 2023. Paper No. 33.
  22. Khattak U.F., Hussein H.A. A review on graph representation for object-oriented programming // BIO Web of Conferences. 2024. Vol. 97. Article 00131. doi: 10.1051/bioconf/20249700131. EDN: YIHEDW.

Дополнительные файлы

Доп. файлы
Действие
1. JATS XML

Согласие на обработку персональных данных с помощью сервиса «Яндекс.Метрика»

1. Я (далее – «Пользователь» или «Субъект персональных данных»), осуществляя использование сайта https://journals.rcsi.science/ (далее – «Сайт»), подтверждая свою полную дееспособность даю согласие на обработку персональных данных с использованием средств автоматизации Оператору - федеральному государственному бюджетному учреждению «Российский центр научной информации» (РЦНИ), далее – «Оператор», расположенному по адресу: 119991, г. Москва, Ленинский просп., д.32А, со следующими условиями.

2. Категории обрабатываемых данных: файлы «cookies» (куки-файлы). Файлы «cookie» – это небольшой текстовый файл, который веб-сервер может хранить в браузере Пользователя. Данные файлы веб-сервер загружает на устройство Пользователя при посещении им Сайта. При каждом следующем посещении Пользователем Сайта «cookie» файлы отправляются на Сайт Оператора. Данные файлы позволяют Сайту распознавать устройство Пользователя. Содержимое такого файла может как относиться, так и не относиться к персональным данным, в зависимости от того, содержит ли такой файл персональные данные или содержит обезличенные технические данные.

3. Цель обработки персональных данных: анализ пользовательской активности с помощью сервиса «Яндекс.Метрика».

4. Категории субъектов персональных данных: все Пользователи Сайта, которые дали согласие на обработку файлов «cookie».

5. Способы обработки: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (доступ, предоставление), блокирование, удаление, уничтожение персональных данных.

6. Срок обработки и хранения: до получения от Субъекта персональных данных требования о прекращении обработки/отзыва согласия.

7. Способ отзыва: заявление об отзыве в письменном виде путём его направления на адрес электронной почты Оператора: info@rcsi.science или путем письменного обращения по юридическому адресу: 119991, г. Москва, Ленинский просп., д.32А

8. Субъект персональных данных вправе запретить своему оборудованию прием этих данных или ограничить прием этих данных. При отказе от получения таких данных или при ограничении приема данных некоторые функции Сайта могут работать некорректно. Субъект персональных данных обязуется сам настроить свое оборудование таким способом, чтобы оно обеспечивало адекватный его желаниям режим работы и уровень защиты данных файлов «cookie», Оператор не предоставляет технологических и правовых консультаций на темы подобного характера.

9. Порядок уничтожения персональных данных при достижении цели их обработки или при наступлении иных законных оснований определяется Оператором в соответствии с законодательством Российской Федерации.

10. Я согласен/согласна квалифицировать в качестве своей простой электронной подписи под настоящим Согласием и под Политикой обработки персональных данных выполнение мною следующего действия на сайте: https://journals.rcsi.science/ нажатие мною на интерфейсе с текстом: «Сайт использует сервис «Яндекс.Метрика» (который использует файлы «cookie») на элемент с текстом «Принять и продолжить».