Roadmap for building the pity interpreter
- Build the AST data structure
- Build pity lexer and test
- Implement the basic functionality of Pity objects just for the sake of completely accomplish the parsing process and test
- Write a module for interacting with PRCE2 and implement the
Regex and Match object
- Build AST by parsing Tokens
- Write Deparser for testing AST
- Setup the list of pity vm opcodes
- Build compiler data structure
- Implement the compiler and its debugger (While compiling, apply Tail Call optimization and NaN Boxing). Test, test, and test
- Implement the bytecode runner. Test, test and test
- Complete the implementation of pity objects, test, test and test
- Optimize the AST with the following optimizations
- Constant folding, test AST by deparsing
- Common subexpression elimination, test AST ...
- Dead code elimination, test AST ...
- Apply the following optimization during the compilation process
- Constant propagation, test compiler
- Code hoisting, test compiler
- (Maybe)? Register Allocation, test compiler
- Make the deparser be
pityfy for pityfying
- Test language features individualy
- Test objects
- Write 150 rosetta codes to test
pity as a whole
- Write documentation
- Call friends to make builders for plan9, BSDs, Linux, Mac and Windows platforms
- Call friends to setup CI/CD pipeline to package build pity for the following linux and BSD distributions
- (Open|Free|Net)BSD
- Debian & Ubuntu
- Alpine Linux
- Archlinux
- Call friends/(or why not me?) to make windows installer GUI app