Наумов А.С. Виртуальная машина автоматного программирования

реклама
Виртуальная машина
автоматного программирования
Наумов А.С., СПбГУ ИТМО
2006
Цель работы
Проектирование и реализация
платформы нижнего уровня для
автоматного программирования в виде
виртуальной машины автоматного
программирования (ВМАП)
2
Существующие реализации
Интерпретация
Многопоточное
выполнение
Взаимодействие
автоматов
в условиях
многопоточности
нет
нет
нет
нет
XML
есть
нет
нет
нет
Java
нет
нет
есть
есть
нет
Windows
нет
VFSMML
есть
ВМ
в явном виде
нет
нет
UniMod
Eclipse
Java
XML
есть
ВМ
в неявном виде
есть
нет
visualSTATE
Windows
нет
Txt
есть
нет
нет
3
нет
Операционная
система
Исходные
коды
Формат
файла
Отладка,
трассировка
Finite State
Kernel Creator
Unix
C
Bin
Finite State
Machine Editor
Unix
C++
JSpasm
Java
StateWORKS
Общие недостатки





Прямая кодогенерация
Зависимость от платформы
Отсутствие многопоточности
Специфический формат
Закрытая реализация
4
Постановка задачи

Необходимо спроектировать и реализовать
ВМАП







Истинная многопоточность и детерминированное
взаимодействие
Выполнение различных типов моделей конечных автоматов
Верификация загружаемых программ
Статическая проверка выполнимости
Изменение загруженной программы во время выполнения
Поддержка наследования автоматов
Инструменты кодогенерации

Графическая нотация  XML  Ассемблер  Байт-код
5
Графическая нотация
Номер и название
состояния
Состояние
0. Начальное состояние
x1 && e0
z1
Группа состояний
1
x3
z3
2
A1(e2)
Условие перехода
x2 && e1
z2; A1(e1)
z3; z4
x4
z4
Действия на входе в
состояние
Переход
Действие на
переходе
6
Автоматная модель









Входные переменные
Выходные воздействия
Запуск с событием (обрабатывается синхронно),
события обязательны
Конечное число состояний
Группы состояний
Действия при входе в состояния
Переходы
Условие перехода
Действия на переходе
7
Архитектура ВМ






Вызов автомата == вызов метода
Отказ от “тактичности”
16-ти разрядная, 8 регистров
Память: ПЗУ, Программа, Данные
Стековая машина
Нуль-адресные команды
8
Формат программы
табл. Автоматы
табл. Описание автомата
табл. Описание состояния
Количество автоматов (N)
Номер автомата
Номер состояния
Описание автомата 1
Количество состояний (K)
Действия на входе
…
Описание состояния 1
Количество переходов (M)
Описание автомата N
...
Описание перехода 1
Описание состояния K
...
Описание перехода M
Процедура
табл. Описание перехода
Булева функция
Условие
Действия
Процедура
Номер нового состояния
9
Многопоточность




Ни один из проанализируемых
инструментов не предоставляет
механизмов многопоточного выполнения
Проблема недетерминированности
Проблема взаимной блокировки потоков
Решение: разбиение процесса обработки на
три фазы, блокировки автоматов потоками
10
Реализация




.NET Framework 2.0, C#
ВМАП, API
XML (MetaAuto, UniMod)  ASM
ASM  Байт-код
11
Апробация

Подсчет количества слов



Нет генерации кода, только
модель в Visio
В случае ошибки в модели,
нет необходимости
перекомпиляции программы
Обедающие философы

Не надо задумываться над
механизмом многопоточного
выполнения
12
Результаты






Предложена концепция ВМАП и определены требования
Разработана архитектура и система команд ВМАП
Разработан механизм многопоточного выполнения
автоматных программ для широкого класса исполнимых
автоматных моделей
Реализованы программные компоненты
Проведена апробация
Развитие: трассировщик, отладчик, новый язык
ассемблера
13
Спасибо
14
Скачать