- Lexical analysis and tokenisation.
- Recursive descent parsing to an abstract syntax tree.
- Direct syntax-tree interpretation.
- Static compilation to a stack based assembly language.
- Assembly from symbolic assembly language to virtual op-codes.
- Virtual machine execution using a stack-based computer.
Each major function is a separate Python program typically between 100-300 lines of code.
This project was developed by Samuel Williams, with support from Tadao Takaoka and the University of Canterbury Summer Scholarship program (2010/2011).