Boost logo

Boost :

Subject: Re: [boost] [MSM] Is there any interest in C++14 Boost.MSM-eUML like library which compiles up to 60x quicker whilst being a slightly faster too?
From: Kris (krzysztof_at_[hidden])
Date: 2016-02-02 17:02:34


On Tue, Feb 2, 2016 at 9:55 PM, Klaim - Joël Lamotte [via Boost] <
ml-node+s2283326n4683151h0_at_[hidden]> wrote:

> On 2 February 2016 at 22:29, Krzysztof Jusiak <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=4683151&i=0>> wrote:
>
> > On Tue, Feb 2, 2016 at 7:09 PM, Klaim - Joël Lamotte <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=4683151&i=1>>
> > wrote:
> >
> > > On 2 February 2016 at 19:41, Vicente J. Botet Escriba <
> > > [hidden email] <http:///user/SendEmail.jtp?type=node&node=4683151&i=2>>
> wrote:
> > >
> > > >
> > > > I see that MSM eUML defines the transitions like
> > > >
> > > > target == source + event [guard] / action
> > > >
> > > > but MSM-lite reverse the source and target
> > > >
> > > > src_state == dst_state + event[ guard ] / action This is confusing.
> > > >
> > > > Why have you chosen this syntax? Vicente
> > > >
> > > >
> > >
> > > Same question here. I misread the examples at first because the
> meaning
> > is
> > > reversed.
> > > It feels unnatural that the state you are going to is part of the
> > > expression stating the conditions to get there.
> > >
> > > The MSM syntax is clearer to me at least.
> >
> >
> > I see your point. It seems like I will have to change the default
> behaviour
> > then as it's clearer for most devs. Guess, I'm the ackward one here.
> > Please, check the euML emulation example ->
> >
> >
> http://boost-experimental.github.io/msm-lite/examples/index.html#euml-emulation
> > as DSL
> > behaviour might be changed if it comes to states order by defining
> > BOOST_MSM_DSL_DST_STATE_FIRST.
> >
> > If it comes to the transition table DSL. I was concidering a lot of
> > options. For example MSM3(eUML2) is using src + event [guard] / action
> ->
> > dst
> > which looks great, however, having a dst state at the end is not really
> > practical, especially after a lot of noice introduced by guard and
> actions
> > (for example in place lambda expressions).
> >
> > Right now, I'm thinking of introducing DSL which would look like that.
> >
> > make_transition_table(
> > "idle* -> state1"_t + event [ guard ] / action
> > , "state1 -> X"_t [ guard ] / action
> > );
> >
> > Nevertheless, I'm not sure whether such approach would be seen
> positively
> > because following MSM approach it should be more like that.
> >
> > make_transition_table(
> > "state1 <- idle*"_t + event [ guard ] / action
> > , "X <- state1"_t [ guard ] / action
> > );
> >
> > which looks confusing for me. Any thought on this?
> >
> >
> I was going to suggest <= and => but I don't know the potential problems.
>

It's a compile time string parsing so there are no issues with characters
here, just the design.
So your suggestion would be:

// *=initial

"state1 <= idle*"

or

"idle* => state1"

is that correct?

'->' was chosen, simply because it might be found in the UML2
specification, but there are no limitations here. Whatever works the best.

Thanks for the suggestion, Kris

>
> > Thanks for your feedback,
> > Cheers, Kris
> >
> >
> > _______________________________________________
> > > Unsubscribe & other changes:
> > > http://lists.boost.org/mailman/listinfo.cgi/boost
> > >
> >
> > _______________________________________________
> > Unsubscribe & other changes:
> > http://lists.boost.org/mailman/listinfo.cgi/boost
> >
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
>
> http://boost.2283326.n4.nabble.com/MSM-Is-there-any-interest-in-C-14-Boost-MSM-eUML-like-library-which-compiles-up-to-60x-quicker-whils-tp4683016p4683151.html
> To unsubscribe from [MSM] Is there any interest in C++14 Boost.MSM-eUML
> like library which compiles up to 60x quicker whilst being a slightly
> faster too?, click here
> <http://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4683016&code=a3J6eXN6dG9mQGp1c2lhay5uZXR8NDY4MzAxNnwtMTY0MTkzNTIwMA==>
> .
> NAML
> <http://boost.2283326.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>

--
View this message in context: http://boost.2283326.n4.nabble.com/MSM-Is-there-any-interest-in-C-14-Boost-MSM-eUML-like-library-which-compiles-up-to-60x-quicker-whils-tp4683016p4683152.html
Sent from the Boost - Dev mailing list archive at Nabble.com.

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