ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> boost
boost
[boost] Re: [fsm] Why exit actions must not fail
by David Abrahams other posts by this author
May 28 2004 10:51PM messages near this date
[boost] Re: [fsm] Why exit actions must not fail | Re: [boost] [fsm] Why exit actions must not fail
"Andreas Huber" <ah2003@[...].net>  writes:

>  Assumptions:
>  A1. When a state machine object is destructed, the modeled state machine
>  must also be terminated (i.e. the destructor of the state machine
>  unconditionally terminates the state machine before returning to the
>  client). 

I've got a problem with that assumption.  It seems to be an
association made because of a conflation of C++'s notions of
termination with the UML standard's use of the word "terminate" to
denote something unrelated, at least as you described it in snipped
text.

>  Actually, the UML standard in one place (2.12.4.4) hints in this
>  direction but it is far from clear whether this assumption is
>  covered by the UML standard (and could thus be put in the hard facts
>  section).
> 
>  A2. If an exit action fails, the state associated with the exit
>  action has not been left.

I'm fine with that assumption.  In fact, that seems provable.

<snip> 

>  I realize that the above reasoning is far from water-tight, as it is
>  based qon two assumptions. However, I believe that most people
>  proficient in the FSM domain will agree that it is safe to assume A1
>  & A2.

I can't speak for them, but as I said, A1 seems far from obvious to
me.

>  Moreover, one could also question whether the UML standard should have any
>  bearing for an FSM library that implements behavior that is not covered in
>  the standard (i.e. exit action failures). I see failing exit actions as an
>  addition or enhancement to the behavior defined in the standard. If such an
>  enhancement breaks the behavior defined in the standard, I think the
>  enhancement should be rejected.

Another thing I should mention: the finite state machine abstraction
was around long before UML and will stay around long after UML has
crumbled to dust because of its overbearing weight and its OO
orthodoxy <wink> .  Actually I think that UML _state charts_ seem like
a pretty good representation, but I'm not sure that I would want to
read the UML spec like a bible when approaching the project of
building a C++ state machine framework.

>  The above is the best reasoning I can currently give to show that
>  failing exit actions do not make any sense. For me, this is more
>  than enough to not ever consider them again (at least for an FSM
>  library implemented in C++). 

Well, I guess we're done then.

>  I will answer questions arising from this post and I am interested
>  in feedback whether this convinces people but I will not try to
>  reason any further as I have run out of arguments and I think I have
>  already invested too much time into this.

I know how you feel ;-)

-- 
Dave Abrahams
Boost Consulting
http://www.boost-consulting.com

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Thread:
Andreas Huber
Andreas Huber
Andreas Huber
Darryl Green
Darryl Green
Darryl Green
Darryl Green
Andreas Huber
E. Gladyshev
Andreas Huber
Andreas Huber
E. Gladyshev
E. Gladyshev
Darryl Green
Andreas Huber
Johan Nilsson
Darryl Green
Andreas Huber
Andreas Huber
Rob Stewart
Andreas Huber
Rob Stewart
Johan Nilsson
Andreas Huber
Andreas Huber
Johan Nilsson
Johan Nilsson
Andreas Huber
Andreas Huber
Andreas Huber
Darryl Green
David Abrahams
Andreas Huber
Andreas Huber
Rob Stewart
Andreas Huber
Andreas Huber
Andreas Huber
Andreas Huber
David Abrahams
David Abrahams
David Abrahams
Andreas Huber
Andreas Huber
Darryl Green
David Bergman
David Abrahams
David Abrahams
David Abrahams
Andreas Huber
Andreas Huber
David Abrahams
Andreas Huber
Andreas Huber
Andreas Huber
Andreas Huber
Darryl Green
Andreas Huber
Robert Bell
David Abrahams
E. Gladyshev
Johan Nilsson
Jeff Flinn
Johan Nilsson
Andreas Huber
Jeff Flinn
E. Gladyshev
Andreas Huber
Andreas Huber
Iain K. Hanson
Robert Bell
David Abrahams
E. Gladyshev
Andreas Huber
Andreas Huber
David B. Held
Andreas Huber
Johan Nilsson
Johan Nilsson
Peter Dimov
Johan Nilsson
Topher Cooper
Johan Nilsson
Johan Nilsson
Andreas Huber
Robert Bell
Andreas Huber
Andreas Huber
Andreas Huber
E. Gladyshev
Andreas Huber
Andreas Huber
E. Gladyshev
E. Gladyshev
Andreas Huber
Andreas Huber
E. Gladyshev
David Abrahams
Andreas Huber
E. Gladyshev
E. Gladyshev
Rob Stewart
E. Gladyshev
E. Gladyshev
Rob Stewart
E. Gladyshev
Rob Stewart
E. Gladyshev
Andreas Huber
Andreas Huber
E. Gladyshev
Marshall Clow
Marshall Clow
E. Gladyshev
David Abrahams
Darryl Green
E. Gladyshev
Andreas Huber
Andreas Huber
Robert Bell
Darryl Green
Pavel Vozenilek
David Abrahams
Andreas Huber
David Abrahams
Gregory Colvin
Pavel Vozenilek
Andreas Huber
Robert Bell
Andreas Huber
Johan Nilsson
Andreas Huber
Andreas Huber
Johan Nilsson
Johan Nilsson
Rob Stewart
Johan Nilsson
Andreas Huber
Andreas Huber
David Abrahams
Andreas Huber
Andreas Huber
David Abrahams
Andreas Huber
Andreas Huber
Johan Nilsson
Rob Stewart
Kwee Heong Tan
David Abrahams
Andreas Huber
David Abrahams
David Abrahams
Andreas Huber
Andreas Huber
Andreas Huber
David Abrahams
Andreas Huber
John Fuller
David Abrahams
David Abrahams
Andreas Huber
Andreas Huber
Aleksey Gurtovoy
David Abrahams
David Abrahams
David Abrahams
Andreas Huber
David Abrahams
David Abrahams

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved