darius / tailbiter

Self-compiling compiler of a Python subset. Just enough Python to Python in Python.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A compiler from a subset of Python 3.4 (starting with abstract syntax trees in Python's ast form) to CPython 3.4 bytecode. The compiler is coded in that same Python subset; it can compile itself.

It can optionally run on top of a port of byterun to Python 3.4. (The original Byterun runs in 2.7 or 3.3.)

I've greatly stripped down and modified the version of byterun in this repo, and extended the compiler a bit, to run both together, i.e. the compiler-compiled compiler and interpreter on the interpreter.

This is a continuation of https://github.com/darius/500lines/tree/master/bytecode-compiler

See article-code for the version published in Code Words. Also, for tweaks to run in Python 3.5 and 3.6.

If you run a later CPython version, don't expect this to work there. I haven't tried it.

About

Self-compiling compiler of a Python subset. Just enough Python to Python in Python.

License:Other


Languages

Language:Python 99.6%Language:Shell 0.4%