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.

Author: avp

Created: 2022-09-11 Вс 19:47