# SCXML: B.1 undefined behavior in algorithm

From: Serge Voloshenyuk <serge_voloshenyuk@yahoo.com>
Date: Wed, 21 Feb 2007 18:24:27 -0800 (PST)
Message-ID: <20070222022427.59970.qmail@web34314.mail.mud.yahoo.com>

```
<parallel id="P">
<state id="P1">
<transition cond="cond" target="P2"/>
</state>
<state id="P2"/>
</parallel>
Maybe you think by graphical notation for state machine.
But  Harel used set arithmetics for compound states.
I mean tree of compound states must be treated as flat set of leaf states.
And transition as changing of current state.
Compound state is just syntax sugar for generalization of OR or AND union of state subset.
And transition is not arrow which has source and destination.
But just assignment of new value to current machine state.

So, in this example:
Initial state is
P1.currentleafsubstate AND P2.curentleafsubstate
Final state is
P1.currentleafsubstate AND P2.initial

Semantically this transition means:
if ( in(P1) and cond ) state = (P1.currentleafsubstate AND P2.initial);
(P1.currentleafsubstate AND P2.curentleafsubstate)->(P1.currentleafsubstate AND P2.initial)

P2 is reentered.
But P1 and P aren't.

in(P1) == in(P1) and in(P2) == in(P) == in(P2)
It's not important in what state transition is declared as soon as actions are absent.

P1.currentleafsubstate is because P1 is absent in target expression. Analogies:
S->P == S->(P1.initial and P2.initial)
S->P11 == S->(P11 and P2.initial)
P11->P12 == (P11 and P2.cur)->(P12 and P2.cur)

---------------------------------
Never Miss an Email
Stay connected with Yahoo! Mail on your mobile. Get started!
```
Received on Thursday, 22 February 2007 02:24:48 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:07:39 UTC