MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Эффективное использование STL и шаблонов

Название:Эффективное использование STL и шаблонов
Просмотров:65
Раздел:Информатика, программирование
Ссылка:Скачать(30 KB)
Описание:Подход к реализации автомата. Детали реализации. Пример использования шаблона. Требования к клиентским приложениям. Преимущества и недостатки предложенного решения. Возможные пути усовершенствования шаблона. Потоковая безопасность.

Университетская электронная библиотека.
www.infoliolib.info

Часть полного текста документа:

Эффективное использование STL и шаблонов Сергей Сацкий Введение
    С помощью конечных автоматов (далее просто автомат) можно успешно решать обширный класс задач. Это обстоятельство подмечено давно, поэтому в литературе по проектированию программного обеспечения часто приводятся рассуждения на тему применения автоматов ([2], [5], [8]). Однако в процессе моделирования автомат рассматривается с более высокого уровня, нежели это делается в момент его реализации с использованием конкретного языка программирования.
    Последний раз журнал C / C++ User's Journal обращался к проблеме проектирования конечных автоматов (Finite State Machine) в майском выпуске 2000 года ([1]). В этом номере была напечатана статья Дэвида Лафренье (David Lafreniere), где автор описывал использованный им подход. С тех пор прошло много времени, и в данной статье будет сделана попытка применить другой подход к проектированию конечного автомата с учетом современных тенденций в проектировании программного обеспечения.
    Для удобства рассмотрим простой пример, который будет использоваться далее. Допустим, что необходимо определить, является ли входная последовательность символов целым числом, допустимым идентификатором, или недопустимой строкой. Под допустимыми идентификаторами будем понимать такие идентификаторы, которые начинаются с буквы и далее содержат буквы и "/", или цифры. Автомат, который поможет решить задачу, показан на рисунке 1. На рисунке используется нотация UML (Unified Modeling Language).
    
    Рисунок 1. Автомат, позволяющий выяснить, что представляет собой входная строка.
    Следует отметить, что различные источники наделяют подобный автомат различными атрибутами. Чемпионом по их количеству, наверное, является UML ([2]). Здесь можно найти отложенные события (deferred events), внутренние переходы (internal transitions), параметризованные триггеры событий (event triggers with parameters), дополнительные условия переходов (guard conditions), входные функции (entry action), выходные функции (exit action), события, генерируемые по таймеру (time events) и т.д. Однако здесь мы для простоты изложения опустим дополнительные атрибуты (к некоторым из них мы вернемся позже) и сосредоточимся на простой модели, где есть состояния, события и переходы между состояниями.
    На данный момент все, что мы имеем - это наглядная и удобная для внесения изменений модель. Как теперь перейти от нее к коду на языке С++? Самый простой из способов реализации - это набор операторов if в том или ином виде. Например:
    switch ( CurrentState )
    {
    case State1: if ( CurrentEvent == Event1 )
    {
    . . .
    }
    if ( CurrentEvent == Event2 )
    {
    . . .
    }
    . . .
    case State2: . . . Не слишком наглядно, не так ли? А теперь представим себе, что мы имеем десятки событий и десятки состояний. Такой код просматривать трудно. Особенно тяжкие проблемы возникают при сопровождении кода, когда к нему надо вернуться через несколько месяцев и внести исправления.
    Другая возможная реализация состоит в наборе функций, каждая из которых представляет собой состояние. Такая функция сможет возвратить указатель на ту функцию, которая соответствует новому состоянию автомата. Такая реализация также не облегчает поддержку кода.
    Подойдем к проблеме немного с другой стороны. ............




Нет комментариев.



Оставить комментарий:

Ваше Имя:
Email:
Антибот:  
Ваш комментарий:  



Похожие работы:

Название:Синтез керуючих автоматів
Просмотров:97
Описание: ВСТУП Принцип мікропрограмного керування припускає, що цифровий пристрій складається з двох частин: операційний автомат (ОА) і керуючий автомат (КА). ОА виконує найпростіші операції (мікрооперації) типу зсув,

Название:Автоматизированная система в здравоохранении
Просмотров:81
Описание: АСУ в здравоохранении ― это система управления медицинским учреждением, отраслью, основанная на регулярном применении современных математических методов и технических средств обработки данных в учете, анали

Название:Автоматизація кормороздавача
Просмотров:155
Описание: Содержание Вступ Вихідні дані Обґрунтування проекту Технологічна і технічна характеристика об'єкта управління Розробка схеми управління об'єктом автоматизації Розробка схеми підключень Розрахуно

Название:Разработка автоматической коробки скоростей металлорежущего станка
Просмотров:137
Описание: Министерство образования и науки Украины Днепродзержинский государственный технический университет Кафедра технологии машиностроенияИндивидуальное задание По курсу: Металлорежущие станки и промышлен

Название:Судова автоматизована електростанція рефрижератора
Просмотров:73
Описание: МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ МИКОЛАЇВСЬКИЙ ДЕРЖАВНИЙ ПОЛІТЕХНІЧНИЙ КОЛЕДЖ СУДОВА АВТОМАТИЗОВАНА ЕЛЕКТРОСТАНЦІЯ РЕФРІЖЕРАТОРА Пояснювальна записка до курсового проекту 5

 
     

Вечно с вами © MaterStudiorum.ru