PL/0 Language Tools
PL/0 is a collection of tools for learning about parsers, interpreters, compilers and virtual machines. It has been designed from the ground up to be a minimal implementation of several common interpreter and compiler functions, including the following:
- 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.
Install
Documentation
Getting Started
Individual Components
Further Reading
Credits
This project was developed by Samuel Williams, with support from Tadao Takaoka and the University of Canterbury Summer Scholarship program (2010/2011).
Follow Me