Автоматное программирование А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики 2009 г.
2 А.А. Шалыто 1.1. Автоматное программирование Автоматизированный объект управления Машина Тьюринга
3 А.А. Шалыто 1.2. Автоматное программирование Система управления – система вложенных автоматов. Объект управления – произвольный физический объект (клапан) или математическая функция (выдержка времени). Основные понятия: состояния, переходы, события, входные переменные и выходные воздействия, автоматы, гибридные автоматы. Состояния: управляющие в СУ и вычислительные в ОУ.
4 А.А. Шалыто 2.1. Пример. Управление дизель-генератором
5 А.А. Шалыто 2.2. Пример. Управление дизель-генератором
6 А.А. Шалыто 2.3. Пример. Управление дизель-генератором
7 А.А. Шалыто 2.4. Пример
8 А.А. Шалыто 3.1. Парадигма автоматного программирования злоупотребление логикой злоупотребление семантикой Тьюрингово программирование Традиционное программирование Автоматное программирование НАХОЖДЕНИЕ КОМПРОМИССА МЕЖДУ СЛОЖНОСТЬЮ АВТОМАТА И СЛОЖНОСТЬЮ ОПЕРАЦИЙ ОБЪЕКТА УПРАВЛЕНИЯ, ПРИМЕРЕНИЕ ТЬЮРИНГОВА ПРОГРАММИРОВАНИЯ С ТРАДИЦИОННЫМ И ЕСТЬ «МИССИЯ» АВТОМАТНОГО ПОДХОДА В МИРЕ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
9 А.А. Шалыто 3.2. Парадигма автоматного программирования ПАРАДИГМА АВТОМАТНОГО ПРОГРАММИРОВАНИЯ СОСТОИТ В ПРЕДСТАВЛЕНИИ СУЩНОСТЕЙ СО СЛОЖНЫМ ПОВЕДЕНИЕМ В ВИДЕ АВТОМАТИЗИРОВАННЫХ ОБЪЕКТОВ УПРАВЛЕНИЯ
10 А.А. Шалыто 4. Достоинства автоматного программирования Обладает наибольшей эффективностью для систем со сложным поведением Формальное и понятное описание поведения Проверка формальных свойств диаграмм Автоматическая генерация кода по диаграммам переходов Возможность тестирования в терминах автоматов Повышение уровня автоматизации верификации программ методом Model Checking по сравнению с другими классами программ Проектная документация
11 А.А. Шалыто 5. Реализация автоматных программ Вне зависимости от используемого языка программирования реализация автоматных программ осуществляется по графам переходов формально и изоморфно – текст программы «внешне похож» на граф переходов. Переход от графа переходов к тексту программы может осуществляться как вручную, так и автоматически с помощью соответствующих инструментальных средств. Например, для создания программ на языке Java в СПбГУ ИТМО создано инструментальное средство UniMod.
12 А.А. Шалыто 6.1. Инструментальное средство UniMod Семь автоматов ВручнуюАвтоматическая генерация Вручную
13 А.А. Шалыто 6.2. Инструментальное средство UniMod Один из автоматов – AL
14 А.А. Шалыто 7. Верификация автоматных программ При использовании метода Model Checking при верификации программ предлагается по программе строить ее модель. Построение адекватной модели автоматически практически невозможно. При использовании автоматного программирования первичной является модель поведения, по которой строится программа. Поэтому уровень процесса верификации автоматных программ увеличивается.
15 А.А. Шалыто 8. Генерация автоматов и генетическое программирование Основная сложность в автоматном программировании – построение автоматов В большинстве случаев автоматы проектируются вручную Однако эвристическое построение автоматов часто затруднено или невозможно Решение – автоматическое построение конечных автоматов с помощью генетического программирования Это позволит повысить уровень автоматизации построения программ рассматриваемого класса Материалы – на сайте (раздел «Генетические алгоритмы»)
16 В.О. Клебан, А.А. Шалыто, И.В. Широков Применение автоматного программирования во встраиваемых системах 9.1. Беспилотный вертолет Содержит контроллер на базе ядра ARM7 с частотой 60МГц. Интегрированную систему радиосвязи радиусом действия 1.5км (скорость кбит/с) Трехосевой акселерометр. Трехосевой гироскоп. Магнитный компас Услилительно- преобразовательные устройства управления двигателями.
17 Верификация автоматных программ
18 В.О. Клебан, А.А. Шалыто, И.В. Широков Применение автоматного программирования во встраиваемых системах 9.3. Беспилотный вертолет
19 В.О. Клебан, А.А. Шалыто, И.В. Широков Применение автоматного программирования во встраиваемых системах Спасибо за внимание!