УНИВЕРСИТЕТ ИТМО
Кафедра «Технологии программирования»



Главная

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

О нас
 Премии
 Сертификаты и дипломы
 Соревнования по программированию
 Прорыв
 Автографы
 Рецензии

Беллетристика
 Мотивация
 Мысли
Медиа
 Видео
 Фотографии
 Аудио
 Интервью

English
 Home

 Articles
 Posters
 Automata-Based Programming
 Initiatives
 Projects
 Presentations
 UniMod
 UniMod Projects
 Visualizers


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

Яndex



   Главная / Курсовые проекты / Задача Д. Майхилла "Синхронизация цепи стрелков". Вариант 2 (версия для печати)


Задача Д. Майхилла "Синхронизация цепи стрелков". Вариант 2



(C) 2003 г. М.И.Гуисов, А.Б.Кузнецов, А.А.Шалыто

Санкт-Петербургский государственный институт точной механики и оптики (технический университет)

Отсюда можно скачать полный текст документации в формате pdf (140 кб)
Исходные тексты и приложение

Аннотация

В настоящей работе демонстрируется эффективность применения объектно-ориентированного программирования с явным выделением состояний, в котором совместно используются объектно-ориентированный и автоматный стили программирования [1]. В работе [2] был предложен шаблон, который позволяет реализовывать системы вызываемых последовательно автоматов. Однако, при решении задач с параллельными процессами этот шаблон неприменим, в основном, из-за того, что в нем отcутствует переобозначение переменной состояния.

Для устранения указанного недостатка в настоящей работе используются следующие подходы [3]:

  • переобозначение переменной состояния;
  • разбиение цикла работы каждого автомата на три этапа - выбор пути на графе переходов, переход с выполнением действий и обновление переменной состояния. Каждый из этапов выполняется одновременно для всех автоматов.

При создании программы для упрощения взаимодействия параллельно работающих автоматов применялся механизм обмена сообщениями, реализованный с помощью библиотеки "swmem" [3].

В качестве примера выбрана задача о синхронизации цепи стрелков, предложенная Д.Майхиллом в 1957 г. [4].

Рассмотренный в работе пример продемонстрировал эффективность применения предложенного в работе [3] подхода при реализации систем с параллельными процессами. Использование протоколов позволяет визуализировать работу программы, что значительно облегчает ее отладку и, в конечном итоге, демонстрирует в наглядном виде правильность ее работы.

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

  1. Шалыто А.А., Туккель Н.И. Танки и автоматы //BYTE/Россия. 2003. N2.
  2. Шалыто А.А., Туккель Н.И. SWITCH-технология - автоматный подход к созданию программного обеспечения "реактивных" систем //Программирование. 2001. N5. http://is.ifmo.ru/.
  3. Гуисов М.И., Кузнецов А.Б., Шалыто А.А. Интеграция механизма обмена сообщениями в Switch-технологию. СПбГИТМО (ТУ), 2003, http://is.ifmo.ru, раздел "Проекты"
  4. Goto E. A Minimum Time Solution of the Firing Squad Problem //Dittoed Course Notes for Applied Mathematics. Harvard Univ., 1962.



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