Публикации автора

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

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

Издание: ПРОГРАММНЫЕ СИСТЕМЫ И ВЫЧИСЛИТЕЛЬНЫЕ МЕТОДЫ
Выпуск: № 2 (2025)
Автор(ы): Дагаев Дмитрий Викторович
Сохранить в закладках