Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🧮 Pushdown Automaton (PDA) Visualizer

JavaScript HTML5/CSS3 Ubuntu


🎯 Project Overview

An interactive, web-based graphical simulation tool designed to visually trace and demonstrate the step-by-step operations of a Pushdown Automaton (PDA) on custom input strings. This tool bridges the gap between theoretical computation and practical application, making it easy to understand how stack memory interacts with formal language states.

🌟 Key Showcase: Features smooth real-time execution tracking, custom transition evaluation, and live-updating stack layouts.


✨ Dynamic Features

  • ⚡ Real-Time Visualization: Watch states change color and transitions fire dynamically as input strings are parsed.
  • 📚 Live Stack Visualizer: A complete graphical representation of the internal memory stack showing Push ($Pushed$), Pop ($Popped$), and Skip ($No-op$) interactions frame-by-frame.
  • ⏯️ Step-by-Step Control: Fully interactive playback controls—pause, play, or advance string execution a single token at a time for deep analysis.
  • 🛠️ Custom Rule Builder: Input custom formal language alphabets and transition rules directly into the user interface.

🧠 Computational Theory

A Pushdown Automaton extends standard Finite State Automata by employing an internal memory stack to evaluate Context-Free Languages (CFLs). It is formally defined by the 7-tuple equation:

$$M = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F)$$

📋 Where:

  • $Q$ — A finite set of states.
  • $\Sigma$ — A finite set of input characters (the input alphabet).
  • $\Gamma$ — A finite set of stack characters (the stack alphabet).
  • $\delta$ — The transition logic mapping function: $Q \times (\Sigma \cup {\epsilon}) \times \Gamma \rightarrow \mathcal{P}(Q \times \Gamma^*)$.
  • $q_0$ — The initial start state ($q_0 \in Q$).
  • $Z_0$ — The baseline tracking symbol initially placed inside the stack ($Z_0 \in \Gamma$).
  • $F$ — The final accepting state array configuration ($F \subseteq Q$).

🎯 Designed and developed as a Technical Term Project.

About

An interactive, web-based graphical simulation tool built with JavaScript to visually trace and demonstrate the step-by-step operations, state transitions, and live stack mechanics of a Pushdown Automaton (PDA).

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages