memory heap / projects / guile-smc
Table of Contents
1. Guile-SMC
GNU Guile state machine compiler.
Guile-SMC is a state machine compiler that allows to describe finite state machines (FSMs) in Scheme in terms of transition tables. It is capable to generate such transition tables from a PlantUML state diagrams.
1.1. Features
- A transition table can be verified and checked for dead-ends and infinite loops.
- Guile-SMC FSMs gather statistics when they run (steps/transitions); the statistics can be used can be used to compare/analyze FSMs..
- There's an FSM profiler that runs on FSMs trace logs. The profiler output shows how much time the FSM spends in each state. This can be useful for optimization.
- The state machine compiler supports three "targets" for compilation: a regular Guile target where the output FSM depends on Guile-SMC; "guile-standalone" target that produce an FSM that does not depend on Guile-SMC; "guile-standalone-copy" where all the required parts of Guile-SMC are copied alongside with the output FSM to make the code independent.
- Guile-SMC allows to run a FSM on-the-fly with a single "smc run" command – see the docs and the examples for more information.
1.2. Source Code Repository
1.3. Documentation
You can read the documentation online here or use info guile-smc
on your
GNU/Linux distribution with Guile-SMC installed.
1.4. License
Guile-SMC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.