832 B
832 B
Gir is an optimizing brainfuck interpreter in Javascript.
Name
𒌋𒀜 gir (Sumerian) - n. kiln
License
Everything in the repo is under Unlicense / CC0.
Status
Gir can parse, prettyprint, and run programs in brainfuck. Gir supports following optimizations:
- Turn runs of +- or <> into one command
- Turn [-] or [+] into one command
- Add offsets to commands that modify tape, to reduce moving tape head
- Turn multiply loops into one command
TODO
gir.js
- Make VM and transformMultiplyLoops use a Proxied object that gives out 0 for nonexistent elements for tape and allows using [] interface
- Support for other types of EOF?
gir.html
- Implement a UI
Documentation
- Document the VM
- Document the user-facing API
- Document the overall architecture
General
- Get this on NPM?