doi: 10.17586/2226-1494-2021-21-4-525-534


УДК 50.41.17

Исполняющая машина автоматных программ 

Дагаев Д.В.


Читать статью полностью 
Язык статьи - русский

Ссылка для цитирования:
Дагаев Д.В. Исполняющая машина автоматных программ // Научно-технический вестник информационных технологий, механики и оптики. 2021. Т. 21, № 4. С. 525–534. doi: 10.17586/2226-1494-2021-21-4-525-534


Аннотация
Автоматное программирование основано на построении программных систем как конечных автоматов с явным выделением состояний. Рассмотрены подходы к автоматам как структурам данных и их реализации в разных парадигмах. Оценены требования в части применения автоматных подходов к решению реальных задач. Показано, что для реализации поведения автоматов необходимы подходы, выходящие за рамки объектно-ориентированного программирования. Рассмотрены принципы подстановки вместо механизма наследования объектно-ориентированных программ. Предложено использовать сепарацию кода и данных в рамках парадигмы программирования, управляемого данными. Описана структура данных и взаимодействие с кодом как результат этой сепарации. Рассмотрены механизмы динамической загрузки модулей и представления как данных, кода и схем. Предложена концепция исполняющей машины автоматных программ. Приведено описание ссылочных взаимосвязей в потенциально распределенных системах. Определены требования к реализации исполняющей машины: модульность, использование метаданных, доступ по чтению. Выбран язык программирования Оберон/Компонентный Паскаль и среда разработки BlackBox. Реализован прототип исполняющей машины в виде системы Abpe. Рассмотрено функционирования и построение примеров автоматов в Abpe.

Ключевые слова: автоматное программирование, программирование, управляемое данными, принцип подстановки, Оберон, Компонентный Паскаль

Благодарности. Работа реализована в рамках Международного общественного научно-образовательного проекта Инфор­матика-21.

Список литературы
  1. Шалыто А.А. Парадигма автоматного программирования // Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики. 2008. № 53. С. 3–23.
  2. Поликарпова Н.И., Шалыто А.А. Автоматное программирование. СПб., 2008. 167 с.
  3. Гамма Э., Хэлм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. СПб.: Питер, 2001. 366 p.
  4. Малаховски Я.М. Реализация конечных автоматов на функциональных языках программирования: дипломная работа / Санкт-Петербургский государственный университет информационных технологий, механики и оптики, Кафедра компьютерных технологий СПб., 2009. 68 c.
  5. Шелехов В.И. Язык и технология автоматного программирования // Программная инженерия. 2014. № 4. С. 3–15.
  6. Дагаев Д.В. О разработке Оберон-системы с заданными свойствами эргодичности // Труды Института системного программирования РАН. 2020. Т. 32. № 6. С. 67–78. https://doi.org/10.15514/ISPRAS-2020-32(6)-5
  7. Шопырин Д.Г., Шалыто А.А. Объектно-ориентированные подход к автоматному программированию // Информационно-управляющие системы. 2003. № 5. С. 29–39.
  8. Шамгунов Н.Н., Корнеев Г.А., Шалыто А.А. State Machine – новый паттерн объектно-ориентированного проектирования // Информационно-управляющие системы. 2004. № 5. C. 13–25.
  9. Мартин Р. Чистая архитектура: искусство разработки программного обеспечения. СПб.: Питер, 2018. 351 p.
  10. Joshi R. Data-Oriented Architecture: A Loosely-Coupled Real-Time SOA. Real-Time Innovations, Inc., 2007 August. 54 p.
  11. Робинс А. Linux: программирование в примерах. М.: Кудиц-Пресс, 2008. 655 p.
  12. Harel D., Pnueli A. On the development of reactive systems // Logic and Models of Concurrent Systems. Springer Verlag, 1985. P. 477–498. (NATO ASI Series, Series F: Computer and Systems Sciences, vol. 13). https://doi.org/10.1007/978-3-642-82453-1_17
  13. Dijkstra E.W. On the role of scientific thought// Selected Writings on Computing: A Personal Perspective. New York, NY, USA: Springer-Verlag, 1982. P. 60–66. https://doi.org/10.1007/978-1-4612-5695-3_12
  14. Reiser M., Wirth N. Programming in Oberon: Steps Beyond Pascal and Modula. ACM Press, 1992. 320 p.


Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Информация 2001-2021 ©
Научно-технический вестник информационных технологий, механики и оптики.
Все права защищены.

Яндекс.Метрика