From: Andreas Huber (ah2003_at_[hidden])
Date: 2003-06-05 16:17:06
> Specification and Description Language also known as ITU Z.100. Check
> out at;
Thanks for the link. I've had a look at the SDL-2000 slide show.
AFAICT, SDL FSMs are *very* similar to UML FSMs. Not all that surprising,
given the fact that both languages base on Harel's state charts. The
terminology and the charts are slightly different for some concepts but I'm
quite sure one could implement just about every SDL state machine with a
threading-enabled version of boost::fsm, with very few or no workarounds.
About the only concept missing in my library is a triggerless transition
(SDL: non-deterministic input), which currently is the last item on my to-do
Here's a terminology mapping:
UML/boost::fsm <-> SDL
event <-> signal
reaction <-> input
guard(ed reaction) <-> constrained input
junction point/choice point <-> decision
entry action <-> initialisation
exit action <-> finalisation
state with two or more orthogonal regions <-> state aggregation
inner state <-> composite state
terminator <-> stop state
The remaining concepts (transition, deferral) have the same names in both
Interestingly, SDL also defines exception handlers (supported by
boost::fsm), which UML lacks completely.
Moreover, SDL specifies block and process agents, which are not supported by
UML and my library but could be implemented on top of it.
I therefore think that boost::fsm could be useful for domains where behavior
is specified with SDL.
> As a consequence its pretty good for specifying large communities of
> co-operating FSMs. There is a large quantity of code running in
> switching networks
> that is based on SDL documentation, e.g. ITU-T Q.931 (ISDN PRI).
How is that code usually implemented? Are there SDL code generators and/or
widely used libraries or do people normally handcraft such systems?