notes.txt 1.7 KB

1234567891011121314151617181920212223242526272829303132333435
  1. Notes about the future of SCCD
  2. ==============================
  3. Long-term vision:
  4. - execute SCCD models in web browsers
  5. - through supporting JavaScript (or TypeScript) as:
  6. - a port of the runtime
  7. - a target language
  8. - through supporting C as target language, and compiling to WebAssembly
  9. - dynamic creation/destruction of instances (the "CD" part of SCCD)
  10. - graphical editing of statecharts
  11. - most likely in diagrams.net ("drawio")
  12. - convert drawio (XML) models to SCCDXML
  13. - statechart editing plugin
  14. - code generation
  15. - generating portable C code (or: Rust) may be the most flexible option:
  16. - compile to WebAssembly
  17. - call from Python, Java, ...
  18. - improve statechart "interface" definition: in/out event, variables (+ observers?), functions, objects
  19. -> YAKINDU as inspiration
  20. - testing framework
  21. - support white-box testing
  22. - more expressive test models (like YAKINDU's SCTUNIT)
  23. Random notes:
  24. - Possible "innovative" performance optimization: immediately after making a transition, based on the new set of current states, already calculate a superset of transition candidates for the next transition.
  25. Rationale: This will speed up the next transition, as fewer transitions have to be evaluated when generating the set of candidates. The total amount of "calculation time" remains the same, we have merely made some calculations sooner, i.e. after firing the previous transition instead of as part of firing the current one. It is more likely that a "the computer" has resources available after firing a transition, as it may take some time before the next event arrives (user input, a timeout, ...).