3 ms·
To these links I would also add Miro Samek's book "Practical UML Statecharts in C/C++," which covers details of implementing (hierarchical) statecharts. The boo
by RossBencina 7y ago
To these links I would also add Miro Samek's book "Practical UML Statecharts in C/C++," which covers details of implementing (hierarchical) statecharts. The book includes a chapter that analyses different ways of encoding extended state machines (Miro concludes a function pointer, with one event handler function per state is the best for C/C++. I don't think this is the encoding that the linked Rust article uses). A simple algorithm for implementing HSMs is described. A large portion of the book is devoted to what you might call "UML Statecharts -- The Good Parts," the parts of the UML statecharts spec that are easy to implement in a real-time setting, and idioms/patterns to achieve similar results as the parts of the spec that are not easy to implement.
Some of Miro's online writings:
https://barrgroup.com/embedded-systems/how-to/state-machines-event-driven-systems https://barrgroup.com/embedded-systems/how-to/state-machines...
https://barrgroup.com/embedded-systems/how-to/introduction-hierarchical-state-machines https://barrgroup.com/embedded-systems/how-to/introduction-h...
https://www.drdobbs.com/who-moved-my-state/184401643 https://www.drdobbs.com/who-moved-my-state/184401643
[Edit: clarity]