8000
Skip to content

Repository files navigation

Theory of Languages and Automata - Practical Project

A computational exploration of Turing Machines and Cellular Automata


🧠 Overview

This project implements core concepts from Theory of Computation, focusing on how computation emerges from simple formal systems.

It demonstrates both the power and limits of computation using classical theoretical models.

  • Turing Machines as a universal model of computation
  • Busy Beaver problem and undecidability
  • Conway’s Game of Life and emergent computation
  • Langton’s Ant as a chaotic deterministic system
  • Construction of logic gates using cellular automata

🌱 Conway’s Game of Life

A zero-player game where simple local rules generate highly complex global behavior. Patterns such as gliders and oscillators demonstrate computational universality.


🐜 Langton’s Ant

A simple agent-based system that evolves from chaotic motion into structured highways, illustrating emergence of order from randomness.


📁 Project Structure

Part 1 - Busy Beaver/
    Turing Machine simulator
    Unary arithmetic (add, multiply)
    Busy Beaver exploration

Part 2 - GoL & Langton's Ant/
    Conway’s Game of Life
    Langton’s Ant
    Logic gates using gliders

⚙️ Installation

pip install -r requirements.txt

▶️ Running Tests

Turing Machines:

python test_turing_machine_example1.py

Game of Life:

python test_gameoflife_glider.py

🚀 What This Project Demonstrates

  • Computation can be modeled using abstract machines
  • Universality of Turing Machines
  • Emergence of complexity from simple rules
  • Equivalence of different computational models
  • Physical interpretation of computation via patterns and signals

🧩 Key Idea

Simple rules, when iterated, can generate universal computation.

📌 Notes

Each subsystem is independently executable and designed for educational exploration of computation theory.

About

A practical exploration of computational theory through Turing Machines, Busy Beaver problem, Conway's Game of Life, and Langton's Ant. Demonstrates emergence, universality, and limits of computation.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0