All Projects → kigawas → computation-py

kigawas / computation-py

Licence: MIT License
Python implementation for Understanding Computation book.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to computation-py

CSLisp
C# Scheme / Lisp implementation for embedding in .NET projects
Stars: ✭ 27 (+22.73%)
Mutual labels:  interpreter
lambda-dti
Interpreter of the ITGL with dynamic type inference
Stars: ✭ 18 (-18.18%)
Mutual labels:  interpreter
termission
Cross-platform Serial (COM Port) / TCP Terminal with Scriptable Auto-Response
Stars: ✭ 39 (+77.27%)
Mutual labels:  interpreter
NTUA-slp-nlp
💻Speech and Natural Language Processing (SLP & NLP) Lab Assignments for ECE NTUA
Stars: ✭ 19 (-13.64%)
Mutual labels:  automata
jispy
A JavaScript interpreter in Python, built for embedding JavaScript.
Stars: ✭ 43 (+95.45%)
Mutual labels:  interpreter
vein
🔮⚡️Vein is an open source high-level strictly-typed programming language with a standalone OS, arm and quantum computing support.
Stars: ✭ 31 (+40.91%)
Mutual labels:  interpreter
fast-formula-parser
Parse and evaluate MS Excel formula in javascript.
Stars: ✭ 341 (+1450%)
Mutual labels:  interpreter
aria
Expressive, noiseless, interpreted, toy programming language
Stars: ✭ 40 (+81.82%)
Mutual labels:  interpreter
MonkeyLang.jl
"Writing an Interpreter in GO" and "Writing a Compiler in GO" in Julia.
Stars: ✭ 30 (+36.36%)
Mutual labels:  interpreter
dew-common
Java common tools collection, support for GraalVM
Stars: ✭ 52 (+136.36%)
Mutual labels:  interpreter
BabyBrowser
A Small Web Browser Built in Python
Stars: ✭ 21 (-4.55%)
Mutual labels:  interpreter
Vaquero
A scripting language for cowboy coders
Stars: ✭ 18 (-18.18%)
Mutual labels:  interpreter
jaws
Jaws is an invisible programming language! Inject invisible code into other languages and files! Created for security research -- see blog post
Stars: ✭ 204 (+827.27%)
Mutual labels:  interpreter
malluscript
A simple,gentle,humble scripting language for mallus, based on malayalam memes.
Stars: ✭ 112 (+409.09%)
Mutual labels:  interpreter
hematita
A memory safe Lua interpreter
Stars: ✭ 118 (+436.36%)
Mutual labels:  interpreter
rlox
Lox Interpreter/REPL written in Rust
Stars: ✭ 31 (+40.91%)
Mutual labels:  interpreter
scheme.js
Scheme语言解释器的JavaScript语言实现
Stars: ✭ 57 (+159.09%)
Mutual labels:  interpreter
snap
An embeddable scripting language inspired by Lua and JavaScript.
Stars: ✭ 32 (+45.45%)
Mutual labels:  interpreter
clyde
Dialogue language and tools for games.
Stars: ✭ 21 (-4.55%)
Mutual labels:  interpreter
X11Basic
X11-Basic BASIC programming language.
Stars: ✭ 42 (+90.91%)
Mutual labels:  interpreter

computation-py

License CI Codecov

Python implementation for Understanding Computation.

Introduction

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.

What does this repository cover

I just implemented equivalent codes from chapter to chapter, those contents are:

  1. Two kinds of interpreters for a simple language with a parser based on lark

  2. 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)

  3. Simulating automata such as DFA, NFA, PDA

  4. Using automata to build a simple regular expression engine

  5. Simulating a Turing machine

  6. Stay tuned..

What is your Python's version

Python 3.9

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].