Меню
Публикации
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006
2005
2004
2003
2002
2001
Главный редактор
НИКИФОРОВ
Владимир Олегович
д.т.н., профессор
Партнеры
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.
Список литературы
Благодарности. Работа реализована в рамках Международного общественного научно-образовательного проекта Информатика-21.
Список литературы
-
Шалыто А.А. Парадигма автоматного программирования // Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики. 2008. № 53. С. 3–23.
-
Поликарпова Н.И., Шалыто А.А. Автоматное программирование. СПб., 2008. 167 с.
-
Гамма Э., Хэлм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. СПб.: Питер, 2001. 366 p.
-
Малаховски Я.М. Реализация конечных автоматов на функциональных языках программирования: дипломная работа / Санкт-Петербургский государственный университет информационных технологий, механики и оптики, Кафедра компьютерных технологий СПб., 2009. 68 c.
-
Шелехов В.И. Язык и технология автоматного программирования // Программная инженерия. 2014. № 4. С. 3–15.
-
Дагаев Д.В. О разработке Оберон-системы с заданными свойствами эргодичности // Труды Института системного программирования РАН. 2020. Т. 32. № 6. С. 67–78. https://doi.org/10.15514/ISPRAS-2020-32(6)-5
-
Шопырин Д.Г., Шалыто А.А. Объектно-ориентированные подход к автоматному программированию // Информационно-управляющие системы. 2003. № 5. С. 29–39.
-
Шамгунов Н.Н., Корнеев Г.А., Шалыто А.А. State Machine – новый паттерн объектно-ориентированного проектирования // Информационно-управляющие системы. 2004. № 5. C. 13–25.
-
Мартин Р. Чистая архитектура: искусство разработки программного обеспечения. СПб.: Питер, 2018. 351 p.
-
Joshi R. Data-Oriented Architecture: A Loosely-Coupled Real-Time SOA. Real-Time Innovations, Inc., 2007 August. 54 p.
-
Робинс А. Linux: программирование в примерах. М.: Кудиц-Пресс, 2008. 655 p.
-
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
-
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
-
Reiser M., Wirth N. Programming in Oberon: Steps Beyond Pascal and Modula. ACM Press, 1992. 320 p.