Created Roadmap (markdown)

Bobbi Webber-Manners 2018-05-02 14:36:44 -04:00
parent a07638ebda
commit 353549c766

20
Roadmap.md Normal file

@ -0,0 +1,20 @@
# Roadmap
- Finish compiler implementation (parity with interpreter features)
- Array pass by reference
- Work out how to evaluate expressions with only constants within the compiler so array dimensions no longer need to be literal constants
- Wishlist features:
- Multidimensional arrays (implemented as array of pointers to array).
- Array initializer lists:
- `word xyz[3] = {123, 456, 789}`
- String initializer:
- `byte qq[10] = "abcde"` - will also add null terminator to string
- Module system
- Would be good to make bytecode relocatable by using relative addresses
- Need to add new relative jump / branch instructions for this)
- Drawback is it makes the code harder to read for humans, but this can be overcome with better tools
- Need to think about how a module system should work
- Write a non-trivial app in EightBall to discover the pain points
- Optimize virtual machine bytecodes, based on study of real code
- For example, it would be good to have an instruction to drop n bytes from call stack rather than repeated `POP`, `DROP` as the compiler currently does.
- High performance VM: hand-coded in 6502 assembly