This project is a work-in-progress working through The Design and Analysis of Computer Algorithms by Aho, Hopcroft, & Ullman.
I thought it would be interesting to implement the various machine abstractions in Python, and play around a little in building a Pidgin Algol interpreter/compiler and translators between the abstractions. The focus is on implementing and playing around with the abstractions and algorithms.
A Makefile
is provided. Show help and usage:
make help
Install pinned versions of python and poetry with asdf:
make asdf-install
This step is optional. Just ensure that you have python and poetry installed.
Install required dependencies with poetry:
make poetry-install
Use flake8 to perform code linting, mypy to run type checks, and pytest to run unit tests and generate a code coverage report:
make test
flake8 plugins flake8-bugbear
, flake8-black
, and flake8-isort
provide
extra lint checks.