First and foremost... how should I name this project ? Any ideas ? MIXPerl, Perlmix (trivial)... anything spicier ?
- Chicken or egg ? - What should I implement first, the MIX virtual machine, reading 5 byte (+ sign) words and executing them, or a MIXAL assembler, translating MIXAL symbolic language to whose 5 byte words.
At the moment, I see pros and cons to both approaches.
Virtual machine first - will give me a good understanding of the architecture. Though I've read documentation on MIX, I can't say I know the theory perfectly. I believe that after writing the VM first, I'll be very skilled in the architecture, and writing MIXAL will be peanuts.
MIXAL first - will make things much easier to debug when I write the VM. I'll be able to test the VM by symbolic MIXAL commands, and not "hand wired" words.
- MIX machine code format - make it binary or text ? Binary is definitely more "machine like" and also much more compact (each word easily encoded in 5 real-computer bytes). Text, OTOH, is easier to debug and "hand wire".
I think that I will eventually support both. The VM execution should probably operate on the text format, it is far more digestible. An abstraction layer will translate between the formats, when applicable.