САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ
Кафедра «Технологии программирования»



Меню
Главная
Новости

Автографы
Автоматы
Автоматное программирование в школе
Беллетристика
Важное
Верификация
Визуализаторы
Внедрение автоматного программирования
Генетические алгоритмы
Геном
Движение
Дипломы
Диссертации
Инновации
Искусственный интеллект
Искусство
Клеточные автоматы
Книги
Конференции
Люди
Мотивация
Мысли
Наука
Нейронные сети
О нас
Об автоматном программировании
Обработка изображений
Образование
Параллельные вычисления
Персоналии
Презентации
Премия
Программная инженерия
Программная кибернетика
Проекты
UniMod
Unimod-проекты
Разное
Рецензии
Роботы и агенты
Свидетельства
Семинары
Скартел-Yota
Статьи
Соревнования по программированию
Тестирование
Учебные курсы
Электрические Джунгли
English
Home

Articles
Automata-Based Programming
EffelState
Initiatives
Projects
Miscellaneous
Presentations
State Machines
Technology
UniMod
UniMod Projects
Visualizers


Поиск по сайту

Яndex

Google





   Главная / Проекты / Объектно-ориентированный подход к автоматному программированию (версия для печати)


Объектно-ориентированный подход к автоматному программированию



(С) 2003 г. Д.Г. Шопырин, А. А. Шалыто

Санкт-Петербургский государственный университет информационных технологий, механики и оптики

Отсюда можно скачать zip-архив полного текста документации в формате pdf (327 кб)
Отсюда можно скачать библиотеку STOOL

Аннотация

В последнее время в программировании все шире применяются конечные автоматы.

Один из подходов к совместному использованию объектной и автоматной парадигм программирования был назван «объектно-ориентированное программирование с явным выделением состояний» или «SWITCH-технология». Несмотря на свои достоинства, он обладает рядом недостатков:

  • не выделено состояние системы в целом;
  • в функции, реализующей автомат, применяются два оператора switch, так как нет механизма различения действий и деятельностей в состояниях. Этот подход снижает «читабельность» кода и увеличивает вероятность ошибки;
  • отсутствует механизм обеспечения повторного использования реализованных автоматов;
  • функции протоколирования вводятся в текст программы вручную, что не является «автоматическим» построением протокола;
  • не предложен механизм обработки ошибок, возникающих при работе системы;
  • отсутствует механизм организации параллельных вычислений.

В данной работе предлагается подход к реализации программных систем рассматриваемого класса, устраняющий указанные выше недостатки. В качестве базы для разработки «автоматной» части программ с явным выделением состояний (автоматы, входные и выходные воздействия, инфраструктура) предлагается библиотека STOOL (SWITCH-Technology Object Oriented Library). Эта библиотека реализована на языке C++. Остальная часть программы (контекст) разрабатывается традиционным образом без использования этой библиотеки.

Состав библиотеки и другая информация о ней приведены в директории $stool$\doc\ru.


© 2002—2009 По техническим вопросам сайта: mikhail.tsarev@gmail.com