bird-vm/README.md

1002 B

bird, a vm

bird-vm is a mostly stack based vm. It uses 8-bit ops and 8-bit stacks, but has 16-bit addressing and the ability to do 16 bit math and work with the stacks in "long mode" (pop a high and low byte to work with 16-bit numbers).

This is a learning project. Many mistakes are being made, but lots of fun is being had. It is inspired by varvara/uxn, but without looking at their implementation details and mostly just taking my memory of their project as a point of inspiration. I do not expect it to be generally useful, or a particularly good design (it is my first time dipping a toe into writing a bytecode interpreter/vm).

Coming soon:

  • An assembler that produces bird bytecode (see: bird-asm )
  • A few string handling ops that will make working with null terminated strings more functional
  • A higher level language that compiles down to either the assembler or to bytecode
    • I am thinking about something vaguely Pascal-like