Getting Started with fsmc¶
This section describes how to install fsmc, run verification passes, transpile statecharts between modeling formats, and integrate generated code into your build system.
Navigation & Contents¶
| Guide | Description | Target Audience |
|---|---|---|
| Installation & Setup | System requirements, CMake FetchContent, Conan 2.0, vcpkg, and building from source. |
All Users |
| Quickstart Tutorial | End-to-end walkthrough from authoring a statechart to formal verification and execution. | New Users |
CLI Reference (fsmc & fsm-opt) |
Comprehensive command-line flag manual for compilation, verification, and standalone export. | Developers / CI |
| Build System Integration | Automated CMake target integration using fsmc_target_sources() and package managers. |
Build Engineers |
Compiler Workflows¶
Depending on your engineering workflow, fsmc supports three primary operational modes:
1. Model-Based Engineering (MBSE & Transpilation)¶
Author statecharts in high-level engineering formalisms (OMG SysML v2, Cameo / MagicDraw XMI, W3C SCXML). Use fsmc to transpile models losslessly between formats, generate visual diagrams, or produce requirement traceability matrices (RTM) for certification audits.
2. Formal Verification & Static Analysis¶
Run compile-time safety and liveness analysis without executing code. fsmc translates statecharts into formal transition systems, verifying interval contracts and temporal invariants (LTL/CTL) natively and exporting to nuXmv / SMV.
3. Target Code Generation¶
Compile verified statecharts into standalone, zero-heap C++17 or C++20 header files. The generated code adheres to the MBSE 4-domain memory architecture (InPorts, OutPorts, Registers, Services) with zero dynamic memory allocation and deterministic execution bounds.