Skip to content

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.


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.