A potential idea for an toy VM with a plain text bytecode system.
Inspired by a half baked idea:
2020-07-28 12:24:00: the idea would be to build and share tiny 6.5 bit programs encoded as printable ascii characters. this could then in turn be read by a virtual computer to do things like paint a picture or compose a piece of music. #halfbakedideas
How does one share digital art in a low bandwidth kind of
txtvm tries to answer this a fun hacker way.
Instead of trying to use fancy compression algorithms, express the work as a program small enough to fit inside of a toot, tweet, or twtxt post.
The program can be downloaded and read by a specialized interpreter. The interpreter holds all the complexity and is able then render the results.
The language itself would be a simple stack-based VM, with words being represented as integer values to save space. Programs in txtvm themselves would probably be meta-programmed using high-level languages like janet or scheme.
A VM like this would place heavy emphasis on custom bytecode interpreters, treating the bytecode as more of a low-level domain specific language. One interpreter could be something geared for controlling a synthesizer. Another could be made for drawing pictures. Each interpreter would have their own dictionary of low-level primitives to choose from, and the bytecode would be designed to run on the agreed upon system.