Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Научный руководитель Шалыто А. А. Кафедра компьютерных технологий Кафедра технологий программирования Санкт-Петербургского государственного университета информационных технологий, механики и оптики
2 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Научный руководитель Анатолий Шалыто Доктор технических наук Профессор Заведующий кафедрой технологий программирования СПбГУ ИТМО Предложил автоматное программирование в 1991 году Опубликованы две книги в издательстве «Наука» Работы по грантам РФФИ и министерства образования РФ
3 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» О нас Людские ресурсы Кафедра компьютерных технологий СПбГУ ИТМО Исследования проводятся с 2000 года Исследования поддержаны грантами РФФИ и министерства образования РФ Сайт
4 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Автоматы применяются при проектировании аппаратуры Применяются с 50-х годов Развиты формальные теории Применение автоматов в программировании Разработка компиляторов Описание протоколов взаимодействия Statecharts ??? Обоснование
5 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Направления работы Программирование с явным выделением состояний Автоматное и объектно-ориентированное (ОО) программирование Визуализаторы алгоритмов Инструменты автоматного проектирования Клеточные автоматы Прочие исследования
6 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Программирование с явным выделением состояний Разрабатывается Анатолий Шалыто Никита Туккель Георгий Корнеев Основные направления исследований Автоматное проектирование событийных систем Преобразование программ к автоматному виду Автоматные аналоги «классических» алгоритмов
7 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Состояние Переходы Входные воздействия События Входные переменные Выходные воздействия Система взаимосвязанных автоматов Вложенные автоматы Вызываемые автоматы Программирование с явным выделением состояний Основные понятия
8 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Унифицированный подход к проектированию систем со сложным поведением Выявление логических ошибок на стадии проектирования Проектирование, реализация и отладка в терминах автоматов Удобство документирования Программирование с явным выделением состояний Преимущества
9 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Программируемые логические контроллеры Встроенные системы Структурное программирование Объектно-ориентированное программирование Разработка Web-приложений Программирование с явным выделением состояний Области применения
10 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Разрабатывается Никита Шамгунов Георгий Корнеев Данил Шопырин Основные направления работы Интеграция автоматов в объектно ориетированные программы Автоматное представление объектов Автоматное и ОО программирование
11 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Оборачивание автоматов объектами Switch-based представление автоматов Представление автоматов на основе виртуальных методов Представление автоматов на основе виртуальных вложенных классов Объектная декомпозиция автоматов Декомпозиция на состояния Декомпозиция на состояния и преходы Событийные автоматы Обобщенные переходы Автоматное и ОО программирование Интеграция автоматов в ОО программы
12 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Анализ паттернов проектирования State и аналогов Паттерн проектирования State Machine Язык программирования State Machine Автоматное и ОО программирование Автоматное представление объектов
13 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» В изуализаторы алгоритмов Разрабатывается Георгий Корнеев Матвей Казаков Направления работы Разработка логики визуализаторов алгоритмов Разработка методов построения визуализаторов алгоритмов Средства построения визуализаторов
14 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Визуализаторы алгоритмов Методы построения визуализаторов алгоритмов На коленке Простые визуализаторы: 120+ часов С применением библиотек Простые визуализаторы: часов Сложные визуализаторы: часов Технология построения визуализаторов Простые визуализаторы: 5-10 часов Сложные визуализаторы: до 40 часов
15 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Визуализаторы алгоритмов Средства построения визуализаторов алгоритмов Библиотека BaseApplet Единый интерфейс визуализаторов Общие подходы к построению Библиотека Vizi Логика представлена системой взаимодействующих автоматов Автоматическая генерация логики визуализатора по XML-описанию Технология построения визуализаторов на базе Vizi
16 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Инструменты автоматного проектирования Разрабатывается Вадим Гуров Максим Мазин Данил Шопырин Направления работы Проект UniMod Библиотека STOOL
17 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Инструменты проектирования Проект UniMod (1) Локальная и удаленная отладка диаграмм в терминах состояний Проверка формальных свойств диаграмм Интерпретируемый и компилируемый подходы Запись автоматов в нотации UML-диаграмм классов и состояний Встраиваемый редактор UML-диаграмм для платформы Eclipse Запуск диаграмм в «одно нажатие»
18 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Инструменты проектирования Проект UniMod (2) Области применения Клиент-серверные приложения для платформ J2ME и J2SE Symbian С++ приложения J2EE Web-приложения Сайт проекта Проект ведется СПбГУ ИТМО совместно с компанией eVelopers
19 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Инструменты проектирования Библиотека STOOL Результаты Контроль за состоянием системы Автоматическое протоколирование Обработка исключительных ситуаций Многопоточность Перспективы Внедрение Virtual Methods for States Внедрение Virtual Inner Classes for State
20 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Клеточные автоматы Разрабатывается Лев Наумов Направления работы Теоретические исследования в области клеточных автоматов Создание инструментов распределенного моделирования клеточных автоматов
21 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Клеточные автоматы Теоретические исследования Обобщенные координаты Применение кривых Пеано для моделирования клеточных автоматов Исследование функциональных возможностей клеточных автоматов
22 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Клеточные автоматы Инструменты моделирования Библиотека моделирования клеточных автоматов CAME&L Моделирование на различных решетках Изменяемые метрики пространства Язык задания автоматов Расширяемость (Plugins) Распределенное моделирование
23 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Прочие исследования Мультиметоды Данил Шопырин Автоматный подход к проектированию реактивных мультиагентных систем Борис Ярцев
24 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Прочие исследования Мультиметоды Реализация мультиметодов на ANSI/ISO С++ Константное время вызова мультиметода Раздельная компиляция исходного кода Строгая безопасность типов Не требуются Динамическая память RTTI C-препроцессор
25 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Результаты опубликованы Журналы Программирование Автоматика и телемеханика Известия РАН. Теория систем управления Искусственный интеллект Конференции Телеметика Linux Summit 2003 KIMAS 2003 и 2005
26 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Перспективы Перевод результатов исследований и публикация на английском языке Верификация автоматных моделей с применением темпоральных логик Классификация методов применения автоматов в программировании Применение автоматов для задач искусственного интеллекта
27 Исследовательский центр СПбГУ ИТМО «Технологии автоматного программирования» Спасибо за внимание