Python implementation for Understanding Computation book.
MIT License
Python implementation for Understanding Computation.
Understanding Computation is an awesome book about computation theory, which explains profound and complicated concepts by using short and concise Ruby code snippets.
I don't want to evangelize, but if you are curious about how a program functions, you must read this book. It's just like SICP's ruby version in a way, yet with much more fun.
I just implemented equivalent codes from chapter to chapter, those contents are:
Two kinds of interpreters for a simple language with a parser based on lark
Generating Python code for this language instead of Ruby (Because Python's anonymous functions are quite more limited than Ruby, there are some hacks like Y-combinator)
Simulating automata such as DFA, NFA, PDA
Using automata to build a simple regular expression engine
Simulating a Turing machine
Lambda calculus and Church numbers
Stay tuned..
Python 3.10+