gir/README.md

40 lines
897 B
Markdown
Raw Normal View History

2018-05-21 20:55:48 +00:00
Gir is an optimizing brainfuck interpreter in Javascript.
Name
----
𒌋𒀜 gir (Sumerian) - n. kiln
License
-------
Everything in the repo is under Unlicense / CC0.
2018-05-21 20:58:06 +00:00
Status
------
2018-05-24 08:20:33 +00:00
Gir can parse, prettyprint, and run programs in brainfuck.
2018-05-21 21:18:05 +00:00
Gir supports following optimizations:
2018-05-22 11:22:21 +00:00
* Turn runs of +- or <> into one command
2018-05-22 11:26:40 +00:00
* Turn [-] or [+] into one command
2018-05-22 12:08:23 +00:00
* Add offsets to commands that modify tape, to reduce moving tape head
2018-05-25 20:21:29 +00:00
* Turn multiply loops into one command
2018-05-23 21:17:30 +00:00
TODO
----
2018-05-23 21:19:47 +00:00
### gir.js
2018-05-23 21:17:30 +00:00
* Implement `:;#`
* Make VM and transformMultiplyLoops use a Proxied object that gives out 0
2018-05-25 15:26:19 +00:00
for nonexistent elements for tape and allows using [] interface
2018-05-23 21:17:30 +00:00
* Keep a cache of compiled programs in `run()`
2018-05-25 11:19:09 +00:00
* Support for other types of EOF?
2018-05-23 21:19:47 +00:00
### gir.html
* Implement a UI
2018-05-24 08:20:33 +00:00
### Documentation
* Document the VM
* Document the user-facing API
* Document the overall architecture
2018-05-23 21:19:47 +00:00
### General
* Get this on NPM?