Qt 6 Widgets desktop app to build a DFA interactively and visualize Hopcroft minimization step-by-step.
- C++17 compiler
- Qt 6 (Widgets, Core, Gui)
- CMake >= 3.16
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config ReleaseRun build\\Release\\DfaHopcroftVisualizer.exe.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/DfaHopcroftVisualizer./build/DfaHopcroftVisualizer --test- Left "Builder" dock: edit alphabet, add/delete states, add transition mode (click source then target, enter symbols), set start, toggle accept, complete with sink, view transitions and validation, import/export JSON.
- Center canvas: drag states, rubber-band select, middle-mouse pan, Ctrl+wheel zoom, double-click state to rename, double-click edge to edit symbols.
- Right "Hopcroft" dock: run minimization, step through timeline, view explanations, toggle minimized view.
{
"alphabet": ["a","b"],
"states": [
{"id":"q0","start":true,"accept":false,"x":120,"y":200},
{"id":"q1","start":false,"accept":true,"x":320,"y":200}
],
"transitions": [
{"from":"q0","symbol":"a","to":"q1"},
{"from":"q0","symbol":"b","to":"q0"}
]
}