-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
Welcome to AutomataLab! This guide will take you from zero to a fully running, simulating formal language environment. AutomataLab is a unified platform featuring three interconnected workspaces: the Machine Workspace, the Grammar Lab, and the Parser Studio.
- Go to the latest release.
- Under Assets, download the installer for your platform:
-
Windows —
.msior.exe(NSIS) installer. -
macOS —
.dmg(universal/Apple‑Silicon depending on the build). -
Linux —
.AppImageor.deb.
-
Windows —
- Run the installer and launch AutomataLab.
Note: Auto‑updates are supported from v1.0.2 onward. Newer versions download and install over the air automatically.
The app is signed for updates but may not be notarized/code‑signed for the OS gatekeeper. If your OS warns about an unidentified developer:
- macOS: Allow it via System Settings → Privacy & Security.
- Windows: Click More info → Run anyway on the SmartScreen prompt.
Prefer not to install anything? A web build runs at AutomataLab Web Simulator. The simulation engine is identical to the desktop app; only native file-system integrations differ (in the browser, saving/loading uses standard browser download/upload mechanics).
If you are a developer looking to contribute, you will need Node.js (LTS), npm, and the Rust toolchain.
# Clone the repository
git clone https://github.com/reeshavsinha/AutomataLab.git
cd AutomataLab
# Install JavaScript dependencies
npm install
# Run the desktop app in dev mode (with hot reload)
npm run tauri:dev
# Or run just the web frontend
npm run devAutomataLab is organized into three major workflows. You can seamlessly switch between them using the primary navigation tabs:
- Machine Workspace: Draw, edit, and simulate Finite Automata (DFA, NFA, ε-NFA), Pushdown Automata (DPDA, NPDA), and Turing Machines (TM, LBA).
- Grammar Lab: Define Context-Free Grammars (CFGs), compute FIRST/FOLLOW sets, check for nullability and ambiguity, and perform Chomsky/Greibach Normal Form conversions.
- Parser Studio: Automatically generate Top-Down and Bottom-Up parsers (LL(1), LR(0), SLR(1), CLR(1), LALR(1), CYK, Earley) from your grammars and visualize parsing steps on input strings.
Let's build a machine that accepts strings containing an even number of a's.
- Select the Machine Workspace: Ensure you are in the default workspace.
- Set Machine Type: In the toolbar, ensure the dropdown is set to DFA.
-
Add States: Press
N(or select the Add state tool) and click on the canvas to drop two states:q0andq1. -
Mark Start & Accept: Right-click
q0and select Toggle Start. Right-clickq1and select Toggle Accept. -
Draw Transitions: Hover over
q0until the connection dot appears, then drag toq1. In the editor that pops up, typea. Draw a transition back fromq1toq0and typea. Draw a self-loop onq0forb, and a self-loop onq1forb. -
Execute: Type
aabain the input bar at the bottom. -
Simulate: Press Space to play the animation, or use the
S/ → keys to step through it manually. The active state will light up, and the status badge will tell you if the string is ultimately Accepted or Rejected.
Dive deeper into each specific workspace:
- Machine Workspace Guide: Learn about stacks, tapes, and computation trees.
- Grammar Lab Guide: Learn how to write CFGs and analyze them.
- Parser Studio Guide: Discover how to generate Parse Tables and resolve Shift/Reduce conflicts.
AutomataLab v4.1.0 · Repository · Download · Web app · MIT License
Getting Started
Machine Workspace
- Workspace Overview
- Finite Automata
- Pushdown Automata
- Turing Machines & LBA
- Transition Table & Data Tools
Grammar Lab
Parser Studio
Project & Architecture