Boost logo

Boost :

From: Andreas Huber (ah2003_at_[hidden])
Date: 2004-05-30 17:32:43


David Abrahams wrote:
>> I think a foundation for a decision is not flimsy when the behavior
>> in question has proved to be useful in practice. So far nobody, who
>> seems to have experience with non-trivial FSMs, has doubted that it
>> is useful to terminate a state machine when it is destructed (my
>> assumption A1).
>
> I don't doubt that it's often useful. I also think it is surely
> sometimes highly undesirable.

I'd be interested in examples.

> If you remove A1, the "useful" behavior
> is trivial to achieve without transforming the FSM, so it seems that a
> design without A1 is both more flexible and more orthogonal.

Removing A1 means complicating the interface (see my other post regarding
exit()).

>> BTW, as pointed out by someone else the user *does*
>> have a choice. If she happens to have an exit action that she'd
>> rather not have executed upon destruction then she can always
>> transform the machine part in question such that her action is
>> executed as part of a transition action instead (I would consider it
>> a design error not to do so).
>
> Why?
>
>> Every Moore machine (an FSM that has only entry and exit actions)
>> can be transformed to a Mealy machine (an FSM that has only
>> transition actions) and vice versa.
>
> Why require a transformation when it's not neccessary?

Because I very much believe that such a transformation is necessary only in
very few cases (I've never encountered one) and I don't want to complicate
the interface and potentially also pessimize the implementation for all
users just because of those few cases.

Regards,

Andreas


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