Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Chapter 3. Tutorial

Boost , Meta State Machine (MSM) , Part I. User' guide

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Chapter 3. Tutorial

Таблица содержимого

Design
Basic front-end
A simple example
Transition table
Defining states with entry/exit actions
What do you actually do inside actions / guards?
Defining a simple state machine
Defining a submachine
Orthogonal regions, terminate state, event deferring
History
Completion (anonymous) transitions
Internal transitions
more row types
Explicit entry / entry and exit pseudo-state / fork
Flags
Event Hierarchy
Customizing a state machine / Getting more speed
Choosing the initial event
Containing state machine (deprecated)
Functor front-end
Transition table
Defining states with entry/exit actions
What do you actually do inside actions / guards (Part 2)?
Defining a simple state machine
Anonymous transitions
Internal transitions
Kleene (any) event
eUML
Transition table
A simple example: rewriting only our transition table
Defining events, actions and states with entry/exit actions
Wrapping up a simple state machine and first complete examples
Defining a submachine
Attributes / Function call
Orthogonal regions, flags, event deferring
Customizing a state machine / Getting more speed
Completion / Anonymous transitions
Internal transitions
Kleene(any) event)
Other state types
Helper functions
Phoenix-like STL support
Writing actions with Boost.Phoenix (in development)
Back-end
Creation
Starting and stopping a state machine
Event dispatching
Active state(s)
Serialization
Base state type
Visitor
Flags
Getting a state
State machine constructor with arguments
Trading run-time speed for better compile-time / multi-TU compilation
Compile-time state machine analysis
Enqueueing events for later processing
Customizing the message queues
Policy definition with Boost.Parameter
Choosing when to switch active states

Design

MSM делится на front–ends и back-ends. На данный момент есть только один бэкэнд. На лицевой стороне вы найдете три из них, которые представляют собой как можно больше языков описания государственных машин. Для потенциальных языковых авторов этот документ содержит описание интерфейса между front-end и back-end.

Первый интерфейс представляет собой адаптацию примера, представленного в книге MPL, с действиями, определяемыми как указатели на методы состояния или машины состояния. Второй основан на функторах. EUML (embedded UML) — экспериментальный язык, основанный на Boost. Прото и буст. Типирование и скрытие большей части метапрограммирования для повышения читаемости. И eUML, и фронт-энд фанктора также предлагают функциональную библиотеку (немного похожую на Boost.Phoenix) для использования в качестве языка действий (UML не определяет ни одного).

Статья Chapter 3. Tutorial раздела Meta State Machine (MSM) Part I. User' guide может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Part I. User' guide ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 22:09:24/0.0085158348083496/1