Skip to content

KebanFiru/theory_of_computation_simulator

Computation Theory Simulator

Interactive canvas-based simulator for finite automata, pushdown automata, Mealy machines, Moore machines, and Turing machine workflows.

Computation Theory Simulator Main Page

Features

Finite Automata (FA)

  • Create start / normal / accept states on a zoomable canvas
  • Add transitions with symbol-level labels
  • Save selected automata, reopen for editing, move, and export/import JSON
  • Import JSON with stronger backward compatibility for legacy snapshots
  • Convert a selected NFA to DFA from the workbench menu
  • Generate GNFA and CFG artifacts from selected FA
  • View transition table, regex view, and run input tests

Pushdown Automata (PDA)

  • Create PDA start and normal states on canvas
  • Create PDA transitions with format input,pop/push (example: a,A/BA, ε,Z/Z)
  • Save and inspect PDA cards with:
    • transition table
    • automaton summary
    • input execution test
    • side stack panel showing stack changes while the input is processed

Turing Machines (TM)

  • Create TM states: normal, final (accept), and reject
  • Create TM transitions with format:
    • single tape: read/write,move (example: 0/1,R)
    • multi tape: segment;segment;... where each segment is read/write,move (example for 2 tapes: 0/1,R;_/_,N)
  • Supported moves per tape: L, R, N
  • Nondeterministic TM transitions are supported (multiple outgoing transitions for the same read tuple)
  • Multi-tape TM transitions are supported (tape count inferred from transition labels)
  • TM transition-only validation between TM states
  • Save and inspect TM cards with:
    • transition table (State, per-tape Read/Write/Move, Next)
    • 7-tuple summary (Q, Γ, b, Σ, δ, q0, F)
    • input execution test with branch exploration (accept/reject)

Mealy Machines

  • Create Mealy machine states on canvas with machine-specific state family metadata
  • Define transitions with Mealy format: input/output
    • example: a/0, b/1
  • Validate transitions through machine-aware editor rules for Mealy workflows
  • Save, reopen, edit, move, export, and import Mealy snapshots
  • Run input simulations directly from the Saved FA card panel
  • Inspect Mealy output sequence in a dedicated output area under test input
  • Generate grammar-view artifacts from selected Mealy machines through the tools menu

Moore Machines

  • Create Moore machine states on canvas and keep output bound to state identity
  • Define state outputs using Moore labeling conventions supported by the workbench
  • Use Moore-specific transition editing while preserving machine-family constraints
  • Save, reopen, edit, move, export, and import Moore snapshots
  • Run input simulations directly from the Saved FA card panel
  • Inspect Moore output sequence in a dedicated output area under test input
  • Generate grammar-view artifacts from selected Moore machines through the tools menu

Simulation Visual Feedback

  • For FA, TM, and PDA cards, entering a test input highlights traversed transitions on canvas
  • Highlights are scoped to the currently selected saved automaton
  • PDA cards additionally show per-step stack activity in the side stack panel
  • Mealy/Moore cards include clearer output-region rendering during input tests

TM Model Scope

Current TM implementation is:

  • supports single-tape and multi-tape transitions
  • supports deterministic and nondeterministic branching
  • single-symbol read/write per tape segment
  • halting by accept state, explicit reject state, or undefined transition
  • input is placed on tape 1; additional tapes start blank

Stack

  • Next.js 16
  • React 19
  • TypeScript 5
  • Tailwind CSS 4

Getting Started

Install

npm install

Run development server

npm run dev