Boost logo

Boost :

From: Andreas Huber (spam2002_at_[hidden])
Date: 2002-09-01 19:16:41


Hello there

I'm currently implementing a finite state machine framework, which I'd like
to submit to boost eventually. However, before putting more effort into it
I'd like to determine interest in FSM frameworks in general and particularly
in the approach I've taken. You will find all necessary information in the
CVS directories

boost-sandbox/libs/fsm
boost-sandbox/boost/fsm

and in the yahoo files section

http://groups.yahoo.com/group/boost/files/FSM.zip

The uploaded framework, usage example and documentation are far from being
complete but should be sufficiently mature to show what I have in mind. The
code has so far only been tested with MSVC 7.0.

A feature overview follows:

The framework...

1. is fully type-safe.
2. does not require the use of a code generator.
3. leaves a minimum of work to the user.
4. Enforces a strong relationship between user code and the corresponding
UML statechart. This allows for easy implementation as well as easy reverse
engineering.
5. enforces as much as possible at compile time.
6. supports entry-, exit- and transition-actions.
7. supports guards.
8. supports hierarchical (composite, nested) states.
9. delegates all resource allocation to the user so that it could be used
for applications with hard real-time requirements.
10. produces a customizable reaction when a C++ exception is propagated from
user code.
11. supports state-local storage. This rare (but IMHO very useful) feature
stems from the fact that resources are often acquired in the entry action of
a state and released in its exit action. It follows that the current state
should be an object, which is constructed upon state-entry and destructed
upon state-exit.

In addition, the submission could also support:
- Shallow/deep history
- Concurrent states

Regards,

Andreas


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk