mirror of
https://github.com/bobbimanners/EightBall.git
synced 2025-02-16 10:32:33 +00:00
Created Roadmap (markdown)
parent
a07638ebda
commit
353549c766
20
Roadmap.md
Normal file
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
|
Loading…
x
Reference in New Issue
Block a user