GithubHelp home page GithubHelp logo

more-parallel/test0 about scion HOT 5 CLOSED

jbeard4 avatar jbeard4 commented on August 14, 2024
more-parallel/test0

from scion.

Comments (5)

jbeard4 avatar jbeard4 commented on August 14, 2024

Just wondering what was the rational for dropping transition types?

Transition types were added to the spec some time after I started SCION in 2010. I think they can be a useful feature, but actually aren't required to have a consistent semantics.

from scion.

jbeard4 avatar jbeard4 commented on August 14, 2024

I've reviewed the spec, and I think the main problem with SCION's semantics is that it uses an LCA (least common ancestor) as transition scope, as opposed to an LCCA (least common compound ancestor). I think that in most graphical syntaxes, making the transition scope the LCA rather than the LCCA is safe, because the syntax restricts you from creating transitions that explicitly originate from or target orthogonal components; therefore the semantics doesn't need to be as precise (use LCCA instead of LCA).

The implication of making the transition scope the LCCA is that, in cases like test0.scxml, where there is a transition whose source state is an orthogonal component (child of ), is that the parent and all of its orthogonal descendants will also be exited. I think this may be surprising and less intuitive, but may lead to a more regular semantics, and so is an overall better solution than attempting to create a special case in the semantics that prevents the ortho component from being exited. Plus, it appears to be more in line with the semantics described in the spec.

It also means that 'internal' transitions originating from orthogonal components will be more useful, as this will provide a means to create transitions originating from an orthogonal component that targets its descendants, without leaving the parallel parent and all other orthogonal siblings.

SCION doesn't support 'internal' transitions yet, but I think I'm going to add this feature soon.

If you have any ideas about this, I'd enjoy hearing about it.

from scion.

jbeard4 avatar jbeard4 commented on August 14, 2024

Note that the tests in more-parallel/ were designed specifically to explore these issues.

from scion.

jbeard4 avatar jbeard4 commented on August 14, 2024

Also, this is off-topic, but we should have a conversation about finding an optimal way to collaborate between scalejs.statechart and SCION.

from scion.

jbeard4 avatar jbeard4 commented on August 14, 2024

I added support for transition/@type="internal" in the previous commit as well.

from scion.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.